数据结构划分
hash索引 | 基于哈希表的实现,MySql并没有显示支持hash索引,而是作为内部的一种优化,对于热点的数据会自动生成hash索引。 |
B+树索引 | Innodb和Myisam引擎的索引都是通过B+树实现的。 |
数据与索引的存储关联性划分
聚簇索引 | 数据和键值是存储在一起的,叶子节点存储的既有索引也有数据。innodb是聚簇索引类型。 |
非聚簇索引 | 数据文件和索引文件分开存储,叶子节点存储的是数据的地址。myisam是非聚簇索引的。 |
索引字段个数划分
单值索引 | 单个字段组成的索引。 |
组合索引 | 多字段组成的索引,用于组合搜索。 |
是否在主键上
主键索引 | 根据主键组织数据,每张表必须有主键索引且只能有一个 |
非主键索引(二级索引) | 叶子节点存储主键索引值,通过非主键索引查询数据时,会先查主键索引再查到数据。 |
其他分类
唯一索引 | 索引列中的值不能重复,必须唯一,可以为空。 |
全文索引 | 主要利用关键字查询文本。 |