File tree Expand file tree Collapse file tree 1 file changed +8
-5
lines changed Expand file tree Collapse file tree 1 file changed +8
-5
lines changed Original file line number Diff line number Diff line change @@ -396,12 +396,15 @@ ALTER TABLE `cus_order` ADD INDEX id_score_name(score, name);
396
396
索引失效也是慢查询的主要原因之一,常见的导致索引失效的情况有下面这些:
397
397
398
398
- ~~ 使用 ` SELECT * ` 进行查询;~~ ` SELECT * ` 不会直接导致索引失效(如果不走索引大概率是因为 where 查询范围过大导致的),但它可能会带来一些其他的性能问题比如造成网络传输和数据处理的浪费、无法使用索引覆盖;
399
- - 创建了组合索引,但查询条件未遵守最左匹配原则 ;
399
+ - 创建了组合索引,但查询条件未准守最左匹配原则 ;
400
400
- 在索引列上进行计算、函数、类型转换等操作;
401
- - 以 ` % ` 开头的 LIKE 查询比如 ` like '%abc' ` ;
402
- - 查询条件中使用 or,且 or 的前后条件中有一个列没有索引,涉及的索引都不会被使用到;
403
- - 发生[ 隐式转换] ( ./index-invalidation-caused-by-implicit-conversion.md ) ;
404
- - ......
401
+ - 以 % 开头的 LIKE 查询比如 ` LIKE '%abc'; ` ;
402
+ - 查询条件中使用 OR,且 OR 的前后条件中有一个列没有索引,涉及的索引都不会被使用到;
403
+ - IN 的取值范围较大时会导致索引失效,走全表扫描(NOT IN 和 IN 的失效场景相同);
404
+ - 发生[ 隐式转换] ( https://javaguide.cn/database/mysql/index-invalidation-caused-by-implicit-conversion.html ) ;
405
+ - ……
406
+
407
+ 推荐阅读这篇文章:[ 美团暑期实习一面:MySQl 索引失效的场景有哪些?] ( https://mp.weixin.qq.com/s/mwME3qukHBFul57WQLkOYg ) 。
405
408
406
409
### 删除长期未使用的索引
407
410
You can’t perform that action at this time.
0 commit comments