3-4 优化你的索引-运用b+树
1、what B+树
===定义呢,基本与B树相同,
除了 【非叶子节点的子树,关键字的个数与指针是相同的。】,对比,比B树存的数据更多:
B+树:
1.1、关键字的个数与指针是相同的。
1.2、叶子节点才 存储实际数据。
每次数据查询都是从根到叶子,查询时间复杂度很稳定,都是二分查找O(logN),N是数据总数。
1.3、非叶子节点 存索引数据。
2、why B+树 (相对之下)
m阶B树: B树关键字个数<=m-1 ;(上篇3-3)
m阶B+树: B树关键字个数=m ;
因此相对于B树,B+树可以存更多的关键字数据,可以存更多索引,减少IO读取索引的次数
对比:
结论:
3、how 使用B+树
因为B+树
叶子节点间 有指针,所以可以 跨子树叶子节点间进行 实际数据(叶节点上)的 范围查询数据,很方便,
所以综上【用B+树作为:MySQL的索引的数据结构。】