【发布时间】:2012-04-20 11:34:22
【问题描述】:
对于 m 阶 B 树,除根外的每个节点都必须包含 m-1 到 2m-1 个元素,其中每个元素至少是一个键,也可能是一些附加数据(例如,一个值)。然而,每个节点必须选择一些恒定的总大小才能在底层块设备上提供良好的性能。那么如果你的元素是可变大小的会发生什么呢?
SQLite3 似乎有一个将额外的块大小的片段附加到其节点上的方案,并且 MySQL 允许您声明记录的大小(例如,您可以键入字段不仅是字符串,还可以是某种大小的字符串)。还有哪些其他解决方案?人们在选择其中一个时会考虑什么?
edit:上一句,我的意思是,数据库开发人员在决定实施他们的 B 树时会考虑什么远超其他?
(我现在正在上数据库课程,所以我对理论和设计角度更感兴趣,而不是特定系统的细节。)
【问题讨论】: