什么是聚簇索引和非聚簇索引?优缺点是?
什么是聚簇索引和非聚簇索引?其优缺点是?
聚簇索引
也叫聚集索引,特点:
B+树结构,是一种自平衡树,数据行按索引列的值排序顺序进行存储和排序
索引的叶子节点存储索引的键值,并且直接存储数据行,而不是指向数据行的指针
一张表只有一个聚簇索引,因为数据只能按一种顺序存储,通常主键会被创建为聚簇索引
非聚簇索引
特点:
- 通常也是B+树,索引本身是独立的结构,数据行的存储、排序顺序和索引的顺序无关
- 索引的叶子节点存储索引列和指向数据行的指针 (主键)
扩展
如果没有主键
如果没有主键,MySQL会选择唯一索引作为聚簇索引;
如果唯一索引和主键索引都没有,MySQL会有隐藏字段db_row_id,选择该隐藏字段作为主键。
聚簇索引能够提高检索效率
聚簇索引将索引和数据存储在一起,避免了回表操作 (从索引找到指向数据的指针,然后转到数据存储的地址),减少磁盘I/O,提升数据定位的效率
对于范围查询和排序等场景,如果能够使用索引 (就是索引列包含查询条件),那么聚簇索引可以加速这些查询操作,因为数据存储顺序有序,可以扫描连续的物理存储区域
本文标题:什么是聚簇索引和非聚簇索引?优缺点是?
文章作者:Crowntit
发布时间:2025-05-23
最后更新:2025-05-26
版权声明:本文为原创文章,转载请附上原文出处链接。