1. 索引分类
- 按数据结构:B+Tree索引、Hash索引、Full-Text索引
- 按物理存储:聚簇索引、二级索引(普通索引)
- 按字段特性:主键索引、普通索引、前缀索引
- 按字段个数据:单列索引、联合索引(复合索引、组合索引)
1.1 按数据结构分类:
- B+Tree使用的存储引擎是InnoDB。
- Hash索引使用的存储引擎是MyISAM
- Full-Text索引使用的是一个倒排索引,平时我们不能常用这个数据结构。
1.2 按物理存储分类:
- 聚簇索引:简单点可以理解为主键索引,只是看待问题的角度不一样。聚簇索引的叶子节点存储的是一条完整的数据。而非聚簇索引叶子节点存储的是一个主键的id
(聚簇索引的id)。在一个数据库表中,我们如果有主键,那么这个主键就是一个聚簇索引。如果没有主键mysql数据库会给我们生成一个隐形的主键。
- 非聚簇索引:在存储的时候,B+Tree的叶子节点存储主键的id。
1.3 按字段特性分类:
- 主键索引
- 唯一索引
- 普通索引
- 前缀索引:MySQL 前缀索引能有效减小索引文件的大小,提高索引的速度。但是前缀索引也有它的坏处:MySQL 不能在 ORDER BY 或 GROUP BY 中使用前缀索引,也不能把它们用作覆盖索引(Covering Index)。使用于字段类型为char、varchar、text及二进制类型的字段。<
|