SQL查询回表次数怎么看_执行计划指标说明【教学】

admin 百科 13
SQL查询回表次数需通过执行计划推断:使用二级索引查非索引列时,每匹配一行就回表一次,rows值近似回表次数;覆盖索引(Extra显示Using index)则回表次数为0。

SQL查询回表次数怎么看_执行计划指标说明【教学】-第1张图片-佛山资讯网

SQL查询的回表次数,不能直接从执行计划里看到一个叫“回表次数”的数字,而是要通过分析执行计划中的访问路径、索引类型和输出列来推断。核心判断依据是:当使用二级索引(非聚簇索引)查数据,但查询语句需要返回非索引列时,MySQL/Oracle等数据库会根据索引中存储的主键值,再回到主键索引(聚簇索引)查找完整行记录——这个过程就叫“回表”,每次这样的跳转算一次回表。

看Extra列是否出现"Using index condition"或"Using where; Using index"

在MySQL的EXPLAIN结果中:

  • "Using index":说明走了覆盖索引,所有需要的列都在该索引里,不回表
  • "Using index condition":用了ICP(索引下推),虽然用到了索引过滤,但如果SELECT的字段不在索引中,仍需回表;
  • 没出现"Using index",且type是"ref"/"range"/"index"等,但key显示用了某个二级索引,而SELECT包含该索引未包含的列 → 大概率每匹配一行就回表一次。

看Key列和Select Type配合判断回表触发条件

例如执行:SELECT id, name, email FROM users WHERE status=1;

标签: mysql oracle access ai

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~