问题描述
|
也许我的google-foo不能满足您的要求,但我想使用绑定到磁盘的b树alogrithm。由于大多数教程和示例都是基于内存的,因此它们假定使用随机存取存储器,其中更改树中的节点非常简单,但是除了I / O密集型重写或使用内存映射文件外,我无法想到好方法。
理论上会很好,C#或Java会更好。
编辑:我很抱歉缺乏明确性。我不是在寻找要使用的产品或代码库,而是一个示例或说明性的代码库,以更好地理解如何构建磁盘支持的b树。
解决方法
东京内阁(或京都内阁)是最快的键值数据库之一(也包含与B + Trees一起使用的键值数据库):)。我在对B + Tree进行基准测试时就使用了它,并且代码很容易理解。它是用C语言编写的,但也具有Java绑定...
东京内阁:
http://fallabs.com/tokyocabinet/
Berkley DB也可以使用B + Tree。但是,当我对Berkley DB进行基准测试时,与Tokyo Cabinet相比,它非常慢...
http://www.oracle.com/technetwork/database/berkeleydb/overview/index.html
, 首先,请参阅Google的第二,第三,第四和第五结果。
其次,看到这个非常类似的问题的stackoverflow线程。
第三,如果以MSSQL为例,您可以在此处阅读一些内容并按此处所述可视化页面(就像缓存行拆分一样,最小化此类拆分很重要)。例如,MSSQL还对可索引的数据施加了大小限制,即页面大小为8k =。
第四,看到我要问的问题的答案,我只能在这里提供这个答案
另外,您可以使用十六进制编辑器来查看数据库文件,并查看事物的映射方式,但这很极端。