1. 从存储结构上来划分:

    BTree索引(B-Tree或B+Tree索引);

    Hash索引;

    full-index全文索引;

    R-Tree索引

    这里所描述的是索引存储时保存的形式

  2. 从应用层次来分:

    主键索引;

    普通索引;

    唯一索引;

    复合索引(联合索引);

    空间索引;

  3. 根据中数据的物理顺序与键值的逻辑(索引)顺序关系:

    聚集索引(聚族索引);

    非聚集索引(非聚族索引);

总结

索引类型概念
普通索引一个索引只包含一个列,一个表可以有多个单列索引
唯一索引索引列的值必须唯一,但允许有空值
复合索引多列值组成一个索引,专门用于组合搜索,其效率大于索引合并
聚簇索引也称为主键索引,是一种数据存储方式。
B+Tree结构,
非叶子节点包含健值和指针,叶子节点包含索引列和行数据。
一张表只能有一个聚簇索引。
非聚簇索引不是聚簇索引,就是非聚簇索引。
叶子节点只是存索引列和主键id。
如果sql还要返回除了索引列的其他字段信息,需要回表,
第一次索引一般是顺序IO,回表的操作属于随机IO。
回表的次数越多,性能越差