- 全值匹配
- 最佳左前缀法则(如果索引了多列,要遵守最左前缀法则。指得时查询从索引的最左前列开始并且不跳过索引中的列)
- 不在索引列上左任何操作(计算、函数、(自动or手动)类型转换)。
因为在索引列上做操作会导致索引失效而转向全表扫描 - 存储引擎不能使用索引中范围条件右边的列
- 尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少select *
- MySQL 在使用不等于(!= 或者 <>)的时候无法使用索引会导致全表扫描
- is null, is not null 也无法使用索引(关键字段最好也弄个默认值,比如-1或者其他XX,尽量不要设空值)
- like 以通配符开头(’%abc…’) MySQL索引会失效编程全表扫描的操作
所以尽量把%写右边
如果一定要在两边写% %,则可以使用覆盖索引。 - 字符串不加单引号会导致索引失效(因为违反了第3条)
- 少用or,用它来连接时会索引失效
如何避免索引失效
最新推荐文章于 2024-08-14 14:33:10 发布