01-数据结构
- 索引是帮助MySQL高效获取数据的排好序的数据结构
索弓|数据结构
- 二叉树
- 红黑树(二叉平衡树)
- Hash表
- B- Tree(B树)
- B+Tree (B+树(多叉平衡树):也是MySQL使用的数据结构,MySQL设置内存为16K,16K大小存放一个节点)
Hash表
1、Hash是一种散列算法,具体有很多Hash算法
2、在查找的时候,比如查找索引为6的数据,底层先计算以下6的Hash值,得到磁盘文件地址指针,就能直接到磁盘上查找。
3、缺点:对于范围查找,Hash算法就非常慢了,因此MySQL数据库99%选择B+Tree数据结构,而非Hash结构。
B-Tree
1、叶节点具有相同的深度,叶节点的指针为空
2、所有索引元素不重复
3、节点中的数据索引从左到右递增排列
B+ Tree(B-Tree变种)
1、非叶子节点不存储data,只存储索引(冗余),可以放更多的索引
2、叶子节点包含所有索引字段
3、叶子节点用指针双向连接(图有误),提高区间访问的性能(范围查找)