Hello! 欢迎来到小浪资源网!

Explain 中的 Extra 字段如何判断二级索引是否消除回表操作?


Explain 中的 Extra 字段如何判断二级索引是否消除回表操作?

如何通过 explain 判断二级索引是否消除回表操作

分析:

给定的 sql 查询在 idx_track_source_id_created_at_len_parse_result_list 索引上使用了索引查找。要判断是否还存在回表操作,需要检查 Extra 字段。

判断标准:

  • 如果 Extra 中包含 using Index 或 Using Index Condition,则不需要回表。
  • 如果 Extra 中包含 Using where 且未出现 Using Index,则存在回表操作。

本例分析:

给定 explain 结果中,Extra 字段为 Using where; Using index; Using temporary; Using filesort,其中:

  • Using index 表明使用了索引查找。
  • Using where 表明需要根据 WHERE 条件过滤结果。

因此,本示例中存在回表操作。这是因为索引覆盖了所需字段,但同时也需要根据 WHERE 条件过滤数据。因此,mysql 需要从聚簇索引中检索满足条件的行。

结论:

通过检查 explain 输出中的 Extra 字段,可以判断二级索引是否消除了回表操作。如果 Extra 中包含 Using Index 或 Using Index Condition,则不需要回表;否则,存在回表操作。

相关阅读