3-4 优化你的索引-运用b+树

1、what  B+树 

===定义呢,基本与B树相同,
除了 【非叶子节点的子树,关键字的个数与指针是相同的。】,对比,比B树存的数据更多:
3-4 优化你的索引-运用b+树

 

B+树:
1.1、关键字的个数与指针是相同的。

1.2、叶子节点才 存储实际数据。

每次数据查询都是从根到叶子,查询时间复杂度很稳定,都是二分查找O(logN),N是数据总数。

1.3、非叶子节点 存索引数据。

3-4 优化你的索引-运用b+树

 

2、why B+树 (相对之下)

m阶B树: B树关键字个数<=m-1 ;(上篇3-3)

m阶B+树: B树关键字个数=m ;

因此相对于B树,B+树可以存更多的关键字数据,可以存更多索引,减少IO读取索引的次数

对比:

 

结论:

3-4 优化你的索引-运用b+树

 

3、how 使用B+树

因为B+树

叶子节点间 有指针,所以可以 跨子树叶子节点间进行 实际数据(叶节点上)的 范围查询数据,很方便,
所以综上【用B+树作为:MySQL的索引的数据结构。】