mysql索引优化
- 全值匹配 ,效率好;
- 最佳左前缀法则 ,底层数据结构为b+tree的原因;
- 不在索引列上做任何操作(计算,函数,自动/手动类型转换),会导致索引失效而转向全表扫描;
- 存储引擎不能使用索引中范围条件右边的列;
- 尽量使用覆盖索引(索引列和查询列一致/部分一致),减少select *;
- mysql在使用不等于(!=,<>)的时候无法使用索引会导致全表扫描;
- is null,is not null 也无法使用索引 ;
- like以通配符%开头,mysql索引失效会变成全表扫描,可使用覆盖索引解决索引失效。
- 字符串不加单引号索引失效,本质原因是发生了自动类型转换
- 少用or,用它来连接时会索引失效,可以改为用in