自己动手看看mysql索引怎么走
文章图片
逛V站遇到这个问题,也有点懵,看到评论答案五花八门,还是自己动手试下吧。
1.建一个表:
文章图片
2.插入10000条数据
DROP PROCEDURE IF EXISTS proc_initData;
--如果存在此存储过程则删掉
DELIMITER $
CREATE PROCEDURE proc_initData()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i<=10000 DO
INSERT INTO test(id,a,b,c) VALUES(i,i,i,i);
SET i = i+1;
END WHILE;
END $
CALL proc_initData();
文章图片
3.建索引
ALTER table test ADD INDEX indextest(a,b,c);
4.测试
explain select * from test where a=1;
【自己动手看看mysql索引怎么走】
文章图片
explain select * from test where a=1 and b > 2;
文章图片
explain select * from test where a=1 and b > 2 order by c;
文章图片
由此可知,确实满足最左匹配会使用索引没有问题,a 等值,b 范围,ab会使用到索引,范围后的操作不会使用索引,c不会用到索引,但总体来看还是用到了组合索引。
推荐阅读
- 尽力
- 牛人进化+|牛人进化+ 按自己的意愿过一生
- 别怪生活,自己作的!
- 拍照一年啦,如果你想了解我,那就请先看看这篇文章
- 放下心中的偶像包袱吧
- 靈魂裡有香氣的人
- 改变自己,先从自我反思开始
- 失踪的钢笔
- 原生家庭之痛与超越
- 一个懂得和他自己灵魂沟通的人,这个人一定是正直善良的人