【发布时间】:2012-05-19 20:08:31
【问题描述】:
我正在研究用于索引的 B+树,并且我尝试理解的不仅仅是记住结构。据我了解,B+树的内部节点在叶子上形成一个索引,叶子包含指向数据在磁盘上存储位置的指针。正确的?那么查找是如何进行的呢?如果 B+tree 比二叉树好很多,为什么我们不到处使用 B+tree 而不是二叉树呢?
我阅读了有关 B+ 树的 wikipedia 文章,我了解其结构,但不了解实际查找的执行方式。您能否指导我提供一些阅读材料的链接?
除了数据库索引之外,B+ 树还有哪些其他用途?
【问题讨论】:
-
这些问题很多。我研究过这个东西,但是,我几乎什么都不记得了。
-
我认为不能说“B+树比二叉树好”。 B+树主要用于必须将读写操作保持在最低限度的情况,因为信息被“打包”在块中。这就是为什么您会看到它们在数据库索引中大量使用,而不是作为“内存中”数据结构使用。
-
即使在“内存中”数据结构上,二叉树也会导致过多的地址间接性,所以即使在“内存中”数据库上,b+tree 也是首选,我猜“内存中”二叉树相当不错对于不需要高性能功能的应用程序,b+tree 肯定是更复杂的结构,在这些情况下,是的,二叉树是首选。
标签: algorithm tree indexing b-tree