01-数据结构

  • 索引是帮助MySQL高效获取数据的排好序的数据结构

索弓|数据结构

  1. 二叉树
  2. 红黑树(二叉平衡树)
  3. Hash表
  4. B- Tree(B树)
  5. B+Tree (B+树(多叉平衡树):也是MySQL使用的数据结构,MySQL设置内存为16K,16K大小存放一个节点)
Hash表

1、Hash是一种散列算法,具体有很多Hash算法
2、在查找的时候,比如查找索引为6的数据,底层先计算以下6的Hash值,得到磁盘文件地址指针,就能直接到磁盘上查找。
3、缺点:对于范围查找,Hash算法就非常慢了,因此MySQL数据库99%选择B+Tree数据结构,而非Hash结构
01-数据结构

B-Tree

1、叶节点具有相同的深度,叶节点的指针为空
2、所有索引元素不重复
3、节点中的数据索引从左到右递增排列
01-数据结构

B+ Tree(B-Tree变种)

1、非叶子节点不存储data,只存储索引(冗余),可以放更多的索引
2、叶子节点包含所有索引字段
3、叶子节点用指针双向连接(图有误),提高区间访问的性能(范围查找)
01-数据结构