索引分类:
- 普通索引:即一个索引只包含单个列,一个表可以有多个单列索引
- 唯一索引:索引列的值必须唯一,但允许有空值
- 复合索引:即一个索引包含多个列
- 聚簇索引(聚集索引):并不是一种单独的索引类型,而是一种数据存储方式。具体细节取决于不同的实现,InnoDB的聚簇索引其实就是在同一个结构中保存了B-tree索引(技术上来说是B+tree)和数据行。
- 非聚簇索引:不是聚簇索引,就是非聚簇索引
主键索引和唯一索引区别:主键值不能为空,唯一索引可以有一个空值。
聚簇索引和非聚簇索引区别:
- 聚簇索引:将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据
- 非聚簇索引:将数据与索引分开存储,索引结构的叶子节点指向了数据对应的位置