网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > 性能调优 > MySQL数据库优化(六)-性能调优  

MySQL数据库优化(六)-性能调优

2008-06-14  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

 


  ... WHERE index_part1=1 AND index_part2=2 AND other_column=3
  /* index = 1 OR index = 2 */
  ... WHERE index=1 OR A=10 AND index=2
  /* 优化了 like \"index_part1='hello'\" */
  ... WHERE index_part1='hello' AND index_part3=5
  /* 使用索引 index1,但没有用到 index2 或 index3 */
  ... WHERE index1=1 AND index2=2 OR index1=3 AND index3=3;

  以下 WHERE 子句不使用索引: 中国网管联盟bitsCN.com


  /* 没用到 index_part1 */
  ... WHERE index_part2=1 AND index_part3=2
  /* 所有的 AND 部分没用到索引 */
  ... WHERE index=1 OR A=10
  /* 索引没有跨越全部字段 */
  ... WHERE index_part1=1 OR index_part2=10

网管有家www.bitscn.net

  有些时候尽管有可用的索引,MySQL也不会用到它们。一种情况是优化程序认为如果使用索引会需要检索更大部分的表记录(这时候,扫描表可能更快,因为这支需要更少的搜索)。尽管如此,如果有一个查询用 LIMIT 限制只检索部分记录,MySQL就一定会使用索引,因为这样能更快检索到更少记录来返回给结果。

网管下载dl.bitscn.com

  以下是哈希索引的一些不同的特性: 网管联盟bitsCN_com

  它们只用于 = 或 <=> 比较(但并不很快)。 网管网www_bitscn_com

  优化程序无法使用哈希索引来加速 ORDER BY 操作(这种索引不能用于按顺序搜索下一个记录)。

网管u家www.bitscn.net

  MySQL大致无法判断出介于两个值之间有多少记录(这由范围优化程序来决定使用哪个索引)。这在把 MyISAM 表类型改为采用哈希索引的 MEMORY 类型后可能会影响一些查询。 中国网管论坛bbs.bitsCN.com

  只有全部索引键才能用于检索记录(如果是B树索引,任何前缀部分索引也能用于检索记录)。

网管网www.bitscn.com

网管u家u.bitsCN.com

TAGs   性能   优化   数据库   索引       记录   使用   WHERE    如果      
 上一篇:MySQL数据库优化(五)-性能调优   下一篇:MySQL数据库优化(七)-性能调优
MySQL数据库优化(六)-性能调优 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: