如何针对读取和写入大块数据的系统优化B树?

时间:2013-12-23 22:14:15

标签: database-performance b-tree

这对您来说可能看起来像一个简单的问题,但请帮助我澄清我对整个工作流程的理解。 B树优势之一是“B树针对读取和写入大块数据的系统进行了优化”(http://en.wikipedia.org/wiki/B-tree)。我想知道以下是否正确:

  1. B树的节点包含密钥和数据的情况(与包含密钥和存储在光盘上的数据的“指针”相反)。然后整个B树应该存储在光盘上,因为这棵树实现的大型数据库不适合内存。然后很清楚为什么读取大块有所不同:当我们寻找特定的密钥时,我们检索一个带有几个“可疑”密钥的块,其中一个磁盘访问。好的,但如果插入一个新密钥怎么办:我们怎样才能确定它与节点的其他密钥位于同一个块中? Wiki建议使用部分完整的块来加速插入和删除。这是唯一合理的方式吗?

  2. B树的节点包含密钥和存储在光盘上的数据的“指针”的情况。然后B树和数据被“分离”。 B树可以存储在光盘上或存储器中。如果它存储在光盘上,情况基本相同。如果B-tree在内存中,那么我认为在读取大块数据方面没有任何优势。我是否遗漏了一些非常简单的东西,或者这样的方案(光盘上的数据,内存中的索引B树)根本没用过?

  3. 是的,我确实检查了SO,但仍然没有得到它。

0 个答案:

没有答案