组合索引、聚簇索引、覆盖索引的区别

组合索引是索引结构设计方式,

聚簇索引是数据的物理存储方式,

覆盖索引是查询使用索引的方式


🔸 一、组合索引(联合索引 / Composite Index)

✅ 定义:

组合索引是对多个列联合建立的一个索引。比如:

CREATE INDEX idx_name_age ON users(name, age);

这是一个对 (name, age) 两列的联合索引。

✅ 特点:

  • 使用“最左前缀原则”:可以用于 namename + age 的查询,但不能单独用于 age

  • 减少多列查询时的索引数量,提高性能。


🔸 二、聚簇索引(Clustered Index)

✅ 定义:

聚簇索引是指表的数据行实际存储在索引的叶子节点中。在 MySQL 的 InnoDB 引擎中,主键就是聚簇索引

✅ 特点:

  • 每张表只能有一个聚簇索引;

  • 数据按照聚簇索引排序存储;

  • 二级索引存储的是主键值。


🔸 三、覆盖索引(Covering Index)

✅ 定义:

覆盖索引是指一个查询所需要的所有列都可以从一个索引中直接获取到,不需要回表查询主键。

✅ 举例:

-- 联合索引
CREATE INDEX idx_name_age ON users(name, age);

-- 查询只查name和age,不查其他列
SELECT name, age FROM users WHERE name = 'Alice';

如果执行计划中显示:

Extra: Using index

就说明用了覆盖索引,即从 idx_name_age 索引中就能拿到 nameage,不需要回表。


🔸 四、三者对比总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值