面试题答案
一键面试回表操作定义
在MySQL InnoDB存储引擎中,数据以聚簇索引的形式存储。当使用非聚簇索引(二级索引)查询数据时,首先通过二级索引找到对应的主键值,然后再根据主键值去聚簇索引中获取完整的数据行,这个过程就叫做回表操作。
触发回表操作的常见场景
- 使用覆盖索引不满足时:例如,查询语句
SELECT a, b, c FROM table_name WHERE index_column = 'value';
,若index_column
上有二级索引,但该索引不是覆盖索引(即索引中不包含a
、b
、c
所有列),就需要先通过二级索引找到主键值,再根据主键值回表获取完整数据行。 - 范围查询:当使用
BETWEEN
、>
、<
等范围查询条件时,如SELECT * FROM table_name WHERE index_column BETWEEN 'value1' AND 'value2';
,如果index_column
是二级索引,MySQL会先通过二级索引定位符合范围的主键值,然后再回表获取完整的数据行。