mysql不走索引总结

MySQL查询语句中,总会发现明明已经创建了查询字段索引,但是却没有用到,这是由于在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%的)

 

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

show index from tablename.net

查看索引的使用状况:
show status like ‘Handler_read%';
你们能够注意:
handler_read_key:这个值越高越好,越高表示使用索引查询到的次数
handler_read_rnd_next:这个值越高,说明查询低效索引

相关文章
相关标签/搜索