标题: Mysql 性能优化:覆盖索引 [打印本页] 作者: 张国伟 时间: 2025-1-13 06:05 标题: Mysql 性能优化:覆盖索引 概述
覆盖索引(Covering Index)是一个 MySQL 查询优化技术,它指的是一个索引包含了查询所需的全部字段的数据,因此不需要回表(访问数据表的行)就可以完成查询。利用覆盖索引可以显着提高查询性能,因为它减少了磁盘 I/O 操作。
既然是索引,除了存储索引字段的数据之外,还存储了主键信息。
覆盖索引的利用条件 为查询的字段都在索引中:查询涉及的全部字段(SELECT 列表、WHERE 子句和 ORDER BY 子句中的字段)必须包含在索引中。
覆盖索引利用示例
假设有一个表 users,结构如下:
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100),
age INT,
INDEX idx_name_age (name, age)
);
复制代码
SELECT name, age,id FROM users WHERE name = 'John';