1.红黑树
二叉平衡树,高度太高IO次数太多性能下降
2.B+树
- 非叶子节点不存储data,只存储索引(冗余),可以降低高度
- 叶子节点包含所有索引字段和data,
- 叶子节点用指针连接,提高区间访问性能 一个大节点在内存中的折半查找的性能很高,远远大于io查找 节点之间的双向指针方便范围查找
3.MyISAM存储引擎
- 表结构,索引文件和数据文件是分离(非聚集)
- 非聚集索引:叶节点包不含了完整的数据记录,只包含数据地址,查找数据需要回表,经历2次IO
4.InnoDB存储引擎
- 表结构,索引数据文件
- 聚集索引:叶节点包含了完整的数据记录
- 普通索引:叶节点只存储主键索引
- hash索引:数组+链表,hash冲突小的时候,性能比b+树高,主要是他不支持范围查找
5.联合索引
- 减少索引太多占用存储空间
- 多个索引字段要匹配最左匹配原则才会走索引,跳着查找不会走索引,是因为中间的单个索引查找是无序,要查找全表只有定位前面的索引,再查找该索引才会有序