MySql语句优化注意
程序员文章站
2022-07-06 13:38:50
MySql语句优化注意索引失效的几种情况有or时大部分情况下索引失效建议最好不要使用orselect * from a where (storeId = 13891 or parentStoreid = 13891) AND CommentType = 0只走了commentType索引复合索引需满足最左匹配原则like以%开头存在索引列的数据类型隐形转换,则用不上索引,如列类型是字符串,那么数据一定要用引号引用where子句里对索引列上有数学运算explain select...
MySql语句优化注意
索引失效的几种情况
有or时大部分情况下索引失效
- 建议最好不要使用or
select * from a where (storeId = 13891 or parentStoreid = 13891) AND CommentType = 0
只走了commentType索引
复合索引需满足最左匹配原则
like以%开头
存在索引列的数据类型隐形转换,则用不上索引,如列类型是字符串,那么数据一定要用引号引用
where子句里对索引列上有数学运算
explain select * from a where id = 1234;
explain select * from a where id = id + 10000;
where子句中对有索引列使用函数,用不上索引
如果mysql估计使用全表扫描要比使用索引快,则不使用索引
DateTime类型索引跟其他索引一起使用
-
如果mysql的主键是自增的,可以考虑通过主键筛选
-
只会走其他索引
explain select * from awhere type= 0 AND date > ‘2020-06-27 00:00:00’ limit 10;
explain select * from a where date > ‘2020-06-27’ limit 10;
本文地址:https://blog.csdn.net/zj57356498318/article/details/108998855