写在前面,针对InnoDB的MySQL引擎。
聚簇索引:
- 表数据按顺序存储,即索引顺序和表记录物理存储顺序一致。
- 聚簇索引 叶子节点存储数据行和B-Tree索引。
- 在一个表中只能有一个聚簇索引,因为真实物理存储顺序只能有一种。
- 聚簇索引是稀疏索引,数据页上一级索引存储是页指针,非行指针。
非聚簇索引:
- 表数据存储顺序与索引顺序无关。
- 对于非聚簇索引,叶节点包含行主键值和主键值作为指向行的“指针”,通过二级索引查找,两次B-Tree查找 InnoDB自适应哈希索引能够减少这样重复工作。
- 非聚簇索引是密集索引,在数据页的上一级索引页它为每一个数据行存储一条记录