mysql不走索引总结

原创
2017/08/29 17:08
阅读数 807

MySQL查询语句中,总会发现明明已经建立了查询字段索引,可是却没有用到,这是因为在mysql中有些查询语句是用不到索引的,总结如下,以供大家分享。

  1. like语句,‘%w’不会使用索引,‘w%’会使用索引
  2. 列类型为字符串类型,查询时没有用单引号引起来
  3. 在where查询语句中使用表达式
  4. 在where查询语句中对字段进行NULL值判断
  5. 在where查询中使用了or关键字, myisam表能用到索引, innodb不行;(用UNION替换OR,可以使用索引)
  6. where中复合索引未按顺序查询的
  7. 如果mysql估计使用全表扫描要比使用索引快,则不使用索引(数据量小时 or 索引数据量大于20%的)

 

查询某张表中已经建立的索引:

show index from tablename

查看索引的使用情况:
show status like ‘Handler_read%';
大家可以注意:
handler_read_key:这个值越高越好,越高表示使用索引查询到的次数
handler_read_rnd_next:这个值越高,说明查询低效

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部