本文将探讨以下几个问题。
一、思考
- 问题一:聚簇索引定义?
- 问题二:聚簇索引和非聚簇索引区别?
- 问题三:一级索引和二级索引概念?
二、分析
相信提到索引,到家都听说过以下名词:
聚簇索引、非聚簇索引、主键索引、辅助索引、一级索引、二级索引,今天我们将一一分析这些索引。
-
聚簇索引和非聚簇索引
定义:
- 聚簇索引:叶子节点全部是数据节点。
- 非聚簇索引:叶子节点仍然是索引节点,只不过有指向数据块的指针。
如何理解“聚簇”二字:
聚簇即实际的数据行和相关的键值都保存在一起。
聚簇索引的特点:
- 叶子结点存储真实数据行。
- 数据的物理存放顺序与索引顺序是一致的。
- 一个表只存在一个聚簇索引,因为数据的物理存储顺序是唯一的。
非聚簇索引的特点:
- 数据和索引分离,叶子节点不存储真实数据,而是存储指向真实数据的指针。
- 表数据存储顺序与索引顺序无关。
InnoDB采用聚簇索引方式组织数据,而MyISAM采用非聚簇索引方式组织数据。
-
主键索引和辅助索引
主键索引定义:
B&#