使用 explain 如何判断二级索引使用后是否回表?

简介: 如何使用 explain 判断二级索引使用后,是否存在回表操作?

对于给定的查询 sql:
image.png

其 explain 输出:
image.png
是否回表判断:

通过读取 extra 列,可以判断查询是否回表:

using index 表示索引覆盖,不需要回表。
using index condition 表示索引查找,不需要回表过滤。
using index & using where 表示索引查找,但需要回表过滤。
using where 表示回表查询数据。
主键查询 不回表,但 extra 列无法反映。
对于给定的查询,extra 列为 using where; using index; using temporary; using filesort,表明查询使用了索引 (idx_track_source_id_created_at_len_parse_result_list),但需要回表过滤条件 created_at >= now() - interval 30 day。因此,该查询会发生回表操作。

相关文章
|
2月前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
60 3
|
2月前
|
数据库 索引
深入理解数据库索引技术:回表与索引下推详解
【10月更文挑战第23天】 在数据库查询性能优化中,索引的使用是提升查询效率的关键。然而,并非所有的索引都能直接加速查询。本文将深入探讨两个重要的数据库索引技术:回表和索引下推,解释它们的概念、工作原理以及对性能的影响。
85 3
|
3月前
|
SQL Oracle 关系型数据库
SQL优化-使用联合索引和函数索引
在一次例行巡检中,发现一条使用 `to_char` 函数将日期转换为字符串的 SQL 语句 CPU 利用率很高。为了优化该语句,首先分析了 where 条件中各列的选择性,并创建了不同类型的索引,包括普通索引、函数索引和虚拟列索引。通过对比不同索引的执行计划,最终确定了使用复合索引(包含函数表达式)能够显著降低查询成本,提高执行效率。
|
5月前
|
存储 SQL 数据库
深入解析SQL中的聚集索引与非聚集索引
【8月更文挑战第31天】
203 0
|
存储 关系型数据库 MySQL
索引及查询优化
索引及查询优化
68 0
|
SQL 算法 关系型数据库
Mysql使用left join连表查询时,因连接条件未加索引导致查询很慢
Mysql使用left join连表查询时,因连接条件未加索引导致查询很慢
183 0
|
NoSQL MongoDB 开发者
索引的使用 执行计划 | 学习笔记
快速学习 索引的使用 执行计划
索引的使用 执行计划 | 学习笔记
|
存储 关系型数据库 MySQL
MySQL中什么是什么是主键索引、联合索引、覆盖索引、索引条件下推及区别
主键索引:它是一种特殊的唯一索引,不允许有空值,一般在建表的时候指定主键,就会创建主键索引,CREATE INDEX不能用来创建主键索引,通常使用ALTER TABLE来代替。
181 0
|
存储 容灾 关系型数据库
Mysql回表与索引覆盖,联合索引问题
Mysql回表与索引覆盖,联合索引问题
141 0
Mysql回表与索引覆盖,联合索引问题
|
存储 SQL 算法
【聚集索引、辅助索引、覆盖索引、联合索引、filesort过程】
【聚集索引、辅助索引、覆盖索引、联合索引、filesort过程】
137 0