MySQL 使用索引和不使用索引的区别(附17W条数据SQL文件)

2023-05-16

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(使用前将#替换为@)

MySQL 使用索引和不使用索引的区别(附17W条数据SQL文件) 的相关文章

随机推荐