全职匹配我最爱:
2.最佳做前缀法则:
如索引了多列,要遵守最左前缀法则。指的是查询从索引最左前列开始并且不跳过索引中的列。
(带头大哥不能死,中间兄弟不能断)
3.不要在索引列上做任何操作(计算、函数、(自动or手动)类型转换),否则会导致索引失效而转向全表扫描。
例如:
4.范围之后全失效。(范围那一列不失效)
between and > < like
5.尽量使用索引覆盖
(可以使用部分索引列)
6.使用('!='或者‘<>’)的时候无法使用索引导致全表扫描(索引失效)
7. 使用 is Null 或者 is not null 索引失效
8.like 以 通配符开头('%abc...') mysql 索引失效会变成全部表扫描。
最好只在右边写百分号。写成这样july% ,可以用,但是后面的就不能使用索引了。
如果必须使用%July% 呢 ?怎么办?
使用索引覆盖:
9. 字符串不加单引号 索引失效
10.少用or,用它连接时索引会失效。
11.order 之后的 索引失效,其实order by 排序用到了索引但是不计入。
12 group by 与order by 相似,但有不同,group by 会有临时表产生。
group by 会先排序
一般性建议: