您的位置:首页 > 数据库 > MySQL

mysql不走索引总结

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

like语句,‘%w’不会使用索引,‘w%’会使用索引

列类型为字符串类型,查询时没有用单引号引起来

在where查询语句中使用表达式

在where查询语句中对字段进行NULL值判断

在where查询中使用了or关键字, myisam表能用到索引, innodb不行;(用UNION替换OR,可以使用索引)

where中复合索引未按顺序查询的

如果mysql估计使用全表扫描要比使用索引快,则不使用索引(数据量小时 or 索引数据量大于20%的)

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

show index from tablename

查看索引的使用情况:
show status like ‘Handler_read%';
大家可以注意:
handler_read_key:这个值越高越好,越高表示使用索引查询到的次数
handler_read_rnd_next:这个值越高,说明查询低效
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: