Mysql为什么用B+树而不用B树,如果用B树,需要多少层树结构

编程入门 行业动态 更新时间:2024-10-27 02:26:48

Mysql为<a href=https://www.elefans.com/category/jswz/34/1768135.html style=什么用B+树而不用B树,如果用B树,需要多少层树结构"/>

Mysql为什么用B+树而不用B树,如果用B树,需要多少层树结构

B-树跟B+树最大的区别在于,B+树只在末级叶子结点处放数据表行数据,而B-树则会在叶子和非叶子结点上都放。
先分析下B-树将行数据存在非叶子节点上的情况是怎么样的,假设每个数据页还是16KB,掐头去尾每页剩15KB,并且一条数据表行数据还是占1KB,就算不考虑各种页指针的情况下,也只能放个15条数据。数据页扇出明显变少了。而B-树将行数据存在叶子节点上的情况就跟B+树的几乎一样。
所以计算可承载的总行数的公式也变成了一个等比数列。15 + 15^2 +15^3 + … + 15^z , 其中z还是层数的意思。
为了能放2kw左右的数据,需要z>=6。也就是树需要有6层,查一次要访问6个页。假设这6个页并不连续,为了查询其中一条数据,最坏情况大概需要进行6次磁盘IO。
而B+树同样情况下放2kw数据左右,查一次大概是3次磁盘IO。
磁盘IO越多则越慢,这两者在性能上差距略大。
为此,B+树比B-树更适合成为mysql的索引。

更多推荐

Mysql为什么用B+树而不用B树,如果用B树,需要多少层树结构

本文发布于:2023-11-15 23:21:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1609181.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:什么用   结构   Mysql

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!