https://blog.csdn.net/oneby1314/category_10278969.html 阳哥mysql高级 索引优化 锁 相关
https://blog.csdn.net/m0_46153949/article/details/107116168 初级 基本语法等等
索引失效
索引失效的一个案例: 假设 c1234为组合索引
SELECT * FROM test03 WHERE c1='a1' AND c2='a2' AND c3>'a3' AND c4='a4'; c3为range 也就是说where 后边的 c1,c2,c3会利用索引进行,但是c4不会。 但是由于后边c4="a4"是一个等值,只需要在前边的条件下,去找,而不是找全表。
但是如果第四个操作是排序,则extra(额外的操作)则会引入filesort 进行文件排序,而使用=则不需要排序。在range内查找即可,不需要额外操作。
阳哥第二章后半段有索引失效的面试题,可以看看
WHERE c1='a1' AND c2='a2' AND c4='a4' ORDER BY c3; 实际顺序是 WHERE c1='a1' AND c2='a2' ORDER BY c3 AND c4='a4'; 所以c4没用到索引, 但是由于c4是=号,直接在前边结果中查找即可