欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

相关标签: mysql 索引