请选择 进入手机版 | 继续访问电脑版

[MySql] MySQL中的回表和索引覆盖示例详解

[复制链接]
查看94 | 回复11 | 2021-9-12 23:32:53 | 显示全部楼层 |阅读模式
目次

索引范例

聚簇索引: 叶子节点存储的是行记录,每个表必须要有至少一个聚簇索引。使用 聚簇索引查询会很快,由于 可以直接定位到行记录
平凡 索引:二级索引,除聚簇索引外的索引,即非聚簇索引。平凡 索引叶子节点存储的是主键(聚簇索引)的值。

聚簇索引递推规则:

  • 假如 表设置了主键,则主键就是聚簇索引
  • 假如 表没有主键,则会默认第一个NOT NULL,且唯一(UNIQUE)的列作为聚簇索引
  • 以上都没有,则会默认创建一个潜伏 的row_id作为聚簇索引

索引布局

id 是主键,以是 是聚簇索引,其叶子节点存储的是对应行记录的数据

MySQL中的回表和索引覆盖示例详解

非聚簇索引(Non-ClusteredIndex)

MySQL中的回表和索引覆盖示例详解

聚簇索引查询

假如 查询条件为主键(聚簇索引),则只需扫描一次B+树即可通过聚簇索引定位到要查找的行记录数据。

如:

  1. select * from user where id = 1;
复制代码

MySQL中的回表和索引覆盖示例详解

非聚簇索引查询

假如 查询条件为平凡 索引(非聚簇索引),必要 扫描两次B+树,第一次扫描通过平凡 索引定位到聚簇索引的值,然后第二次扫描通过聚簇索引的值定位到要查找的行记录数据。

如:

  1. select * from user where age = 30;
复制代码

  1. 1. 先通过普通索引 age=30 定位到主键值 id=1
  2. 2. 再通过聚集索引 id=1 定位到行记录数据
复制代码

MySQL中的回表和索引覆盖示例详解

先通过平凡 索引的值定位聚簇索引值,再通过聚簇索引的值定位行记录数据,必要 扫描两次索引B+树,它的性能较扫一遍索引树更低。

索引覆盖

只必要 在一棵索引树上就能获取SQL所需的全部 列数据,无需回表,速率 更快。

比方 :

  1. select id,age from user where age = 10;
复制代码

MySQL中的回表和索引覆盖示例详解

使用 id,age,name查询:

  1. select id,age,name, salary from user where age = 10;
  2. explain分析:age是普通索引,但name列不在索引树上,所以通过age索引在查询到id和age的值后,需要进行回表再查询name的值。此时的Extra列的Using where表示进行了回表查询
  3. <img alt="" src="https://img.jbzj.com/file_images/article/202109/2021090811382114.jpg" />
  4. Type: all, 表示全表扫描
复制代码

增长 表的连合 索引:

  1. CREATE INDEX idx_user_name_age_salary ON mydb.user (name, age, salary);
复制代码

explain分析:此时字段age和name是组合索引idx_age_name,查询的字段id、age、name的值刚刚都在索引树上,只需扫描一次组合索引B+树即可,这就是实现了索引覆盖,此时的Extra字段为Using index表示使用 了索引覆盖。

MySQL中的回表和索引覆盖示例详解

分页查询(非使用 索引):

MySQL中的回表和索引覆盖示例详解

添加索引之后,即可实现使用 索引快速查找。

总结

到此这篇关于MySQL中回表和索引覆盖的文章就先容 到这了,更多相干 MySQL回表和索引覆盖内容请搜刮 脚本之家从前 的文章或继续欣赏 下面的相干 文章盼望 大家以后多多支持脚本之家!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar 123457468 | 2021-9-13 05:09:10 | 显示全部楼层
小弟默默的路过贵宝地~~~
回复

使用道具 举报

avatar 白度了一生一x | 2021-9-18 16:06:02 | 显示全部楼层
admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的网站,影视频道的网站所有电影和连续剧都可以免费看的。访问地址:http://tv.mxswl.com
回复

使用道具 举报

avatar 123457751 | 2021-9-26 21:20:20 | 显示全部楼层
刚看见一个妹子,很漂亮!
回复

使用道具 举报

avatar 123457748 | 2021-10-1 06:27:20 | 显示全部楼层
在这个版块混了这么久了,第一次看见这么给你的帖子!
回复

使用道具 举报

avatar 东未红 | 2021-10-1 21:59:47 | 显示全部楼层
吹牛的人越来越多了!
回复

使用道具 举报

avatar 兔仔妹致 | 2021-10-17 22:00:39 | 显示全部楼层
看帖不回帖的人就是耍流氓,我回复了!
回复

使用道具 举报

avatar 白云追月素 | 2021-10-17 23:31:57 | 显示全部楼层
admin楼主很有艺术范!
回复

使用道具 举报

楼上的能详细介绍一下么?
回复

使用道具 举报

admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的网站,他卖的服务器是永久的,我们的网站用 服务器都是在这家买的,你可以去试试。访问地址:http://fwq.mxswl.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则