如何避免索引失效

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值