两个问题:
1、什么是聚集索引?
2、聚集索引有什么用?
首先回答第一个问题,从官方文档中可以总结出:
1、通常聚集索引就是主键索引
2、没有主键索引就用非空的唯一索引作为聚集索引
3、非空唯一索引也没用就主动生成隐形的列作为聚集索引
4、一个只能由一个聚集索引
如mysql定义
每个InnoDB
表都有一个特殊的索引,称为聚集索引 ,用于存储行数据。
所以聚集索引是用来存储行数据的。具体怎么存的?
假设有如下表
insert数据之后如下图
叶子节点存储的是完整的数据,非叶子节点存的是叶子节点的指针