首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

看到了一句:B+树在内存中是没有优势的,但是在磁盘下,就显示出来了.求解.

2012-07-29 
看到了一句:B+树在内存中是没有优势的,但是在磁盘上,就显示出来了.求解..RT, 为什么在内存中是没有优势的?

看到了一句:B+树在内存中是没有优势的,但是在磁盘上,就显示出来了.求解..
RT, 为什么在内存中是没有优势的?? 
  求具体分析...

[解决办法]
因为B+树在内存中会占据大量的空间,内存相对比较宝贵。
硬盘上则空间几乎无限。
[解决办法]
主要原因在于我们用的都是机械硬盘,机械硬盘最慢的就是寻道,寻道之后读取数据的话,2个字节同4K个字节消耗的时间几乎没有区别。用B树可以减少树高,如果用二叉树,也许需要寻道20次,B数也许2次就够了。

不过现在的SSD硬盘,不用寻道,B树就不一定强了。另外在普通机械硬盘上,顺序读写的速度要远远高于随机读写,针对于顺序写,LSM树效率更优。
[解决办法]
为了证明上述观点我还进行了测试,结果如下
程序中用1~1000000作为关键字顺序插入B+树中

内存中存储B+树
阶数为3时 : 2062 ms
阶数为101时 : 4578 ms

外存存储B+树
阶数为3时 : 141328 ms
阶数为101时 : 36234 ms

热点排行