- mysql使用错误索引问题(待完善)
sql语句为:
select * from table_329 where uid = 'xxx' and prop_info_id = 1 and state = 1 order by id desc limit 0, 1
表中建立的索引为:
image.png
explain看的使用的结果为:
image.png
使用索引错误。查看表数据情况
表中总数据量:94797,索引统计的数据量为(show index from xxx):32436
原因猜测:
由于索引页空隙过大,导致mysql执行优化器,认为如果(使用正确的索引查出的数据需要访问的索引页加上回表查询的数据页)>(使用主键索引访问的数据页(sql中使用ID倒序排))要多,所以直接使用主键索引。
解决方法:
执行sql,重新生成索引统计信息(会锁表)
优化查询,只查询需要的信息,如,select id from ....
网友评论