
在 MySQL 中,回表 是一种与索引查询相关的性能现象,通常发生在使用二级索引进行查询时。
回答重点 “回表”是指在使用二级索引(非聚簇索引)作为条件进行査询时,由于二级索引中只存储了索引字段的值和对应的主键值,无法得到其它数据。如果要查询数据行中的其它数据,需要根据主键去聚簇索引查找实际的数据行,这个过程被称为回表。
PRIMARY KEY 对应的索引)
当使用二级索引查询数据时:
这个过程需要两次索引查找(二级索引 → 聚簇索引),称为回表。
假设有一张表 user,结构如下:
sql 代码解读复制代码CREATE TABLE user (
id INT PRIMARY KEY, -- 聚簇索引
name VARCHAR(50),
age INT,
INDEX idx_age (age) -- 二级索引
);执行查询:
sql 代码解读复制代码SELECT * FROM user WHERE age = 25;idx_age 找到 age=25 对应的主键 id。id 回到聚簇索引中查找完整的行数据(回表)。使用覆盖索引:
回表是 MySQL 查询优化中需要重点关注的问题。合理设计索引(如覆盖索引、联合索引)能有效减少回表操作,从而提升查询性能。理解这一机制对优化高并发、大数据量场景的数据库性能至关重要。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。