开发者社区> 问答> 正文

什么是回表查询和覆盖索引?

什么是回表查询和覆盖索引?

展开
收起
呆呆宝 2024-05-23 18:44:23 8 0
2 条回答
写回答
取消 提交回答
  • 回表查询

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

    索引覆盖

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

    例如:

    select id,age from user where age = 10;
    

    ——参考链接

    2024-05-24 08:07:10
    赞同 展开评论 打赏
  • 回表查询是指在使用非聚簇索引查询时,首先通过非聚簇索引定位到主键值,然后再通过聚簇索引(通常是主键索引)定位到具体的行记录。覆盖索引是指查询的列和WHERE子句中的条件都包含在同一个索引中,查询时不需要回查表数据,直接通过索引即可获取结果。

    2024-05-23 19:39:48
    赞同 1 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载