MySQL 使用索引可以减少查询的时间,而不使用索引的查询会更加耗时,因为MySQL需要扫描整个表。此外,使用索引可以提高查询的性能,同时也可以提高查询的可读性和可维护性。
换句话来说, 使用索引后就是兰博基尼
🚗, 不使用索引就是电动三轮车
🚲
本文将使用17W条数据作为演示
(SQL文件在文章末尾获取)
1.MySQL查询分析器 使用方式
在我们平时写的查询语句前加入 EXPLAIN 示例如下:
explain select * from r_class_student where class_id = 307477239979601920
2.不使用索引查询效果
我们以最简单的查询SQL为例, 当class_id不设置索引时 查询结果的type 显示为ALL ,
type的意思是, 显示连接使用了何种类型。
从最好到最差依次是:
system > const > eq_ref > ref > range > index > al
一般来说,得保证查询至少达到range级别,最好能达到ref。
我们再来观察rows
rows的意思是mysql认为必须检查的用来返回请求数据的行数 也就是说,用的越少越好
因为当前查询的类型是ALL也就是代表是全表扫描, 所以请求数据的行数就是整张表的数据(17W条)
3.使用索引查询效果
这里我们在表中将class_id设置上普通索引
保存后再去重新查询刚才的SQL语句, type由刚才的All 变为ref, 请求的数据行也减少为312行,
可见设置完索引后效率上有了明显的提升
扫描下方公众号二维码回复
SQL文件
免费领取
👇
👇
👇
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)