ITPub博客

首页 > 数据库 > MySQL > 回表的含义

回表的含义

MySQL 作者:mcxiaoracle 时间:2023-10-16 22:20:04 0 删除 编辑

table 表 abcdid 几个字段  建立(a,b)

select * from table where a<10;

根据ID回到主键索引树去查询  回表。

覆盖索引是覆盖的数据,减少了回表的次数。


通俗的讲就是,如果 select所需获得列中有非索引列 ,一次索引查询不能获取所有信息,需要到表中找到相应的列的信息。这就叫 回表 。


也就是说,需要从辅助索引(Secondary Index)中获取额外的数据列,需要通过 辅助索引回到主键索引 (Primary Index)中进行查找。


聚簇索引的叶子节点包含整个行记录,一次索引查询就能获取所有的信息。故不需要回表 。

需要回表的情况

  1. SELECT语句使用了非聚集索引:

    如果查询语句 使用了非聚集索引(辅助索引)并 需要返回非索引字段的值,就会触发回表操作。因为辅助索引中只包含索引列的值,而非索引字段的值存储在主键索引中,所以需要回到主键索引中获取完整的数据行。

2. 查询包含了不在索引中的字段: 如果查询语句需要返回 不在辅助索引中的字段 , 就会触发回表操作。

就需要回到主键索引中获取完整的数据行。


参考资料;
https://blog.csdn.net/qq_46130027/article/details/131020002









来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69949806/viewspace-2989221/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 数据科学家
请登录后发表评论 登录
全部评论
数据方向,了解oracle ,IBM DB2 730

注册时间:2019-09-30

  • 博文量
    286
  • 访问量
    226611