首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么VoltDB选择红黑树作为索引结构?

为什么VoltDB选择红黑树作为索引结构?
EN

Stack Overflow用户
提问于 2018-08-22 08:06:09
回答 1查看 287关注 0票数 0

正如我从源代码上看到的

代码语言:javascript
复制
enum TableIndexType {
    BALANCED_TREE_INDEX     = 1,
    HASH_TABLE_INDEX        = 2,
    BTREE_INDEX             = 3, // unused
    COVERING_CELL_INDEX     = 4
};

VoltDB主要采用BALANCED_TREE_INDEX作为索引结构,内部采用CompactingMap(一种红黑树实现).

与b+tree相比,当按索引进行范围查询时,使用红黑树将失去空间局部性.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-28 15:01:07

VoltDB选择红黑树实现的主要原因是为了避免内存碎片和保持平衡。性能需要在数据的生存期内保持一致,而不是使用不太灵活的结构,在某些情况下会更快,但随着时间的推移会降低性能或变得不太理想。

存储在VoltDB表中的记录可能包含不同的数据类型和列数,并且它们可以在内存中保存不同的时间。索引通常包含多个列。对于VARCHAR列,值<64个字节存储在索引中,但对于较大的值,索引使用指向池内存中值的一个副本的指针。

你可以在这里读到更多关于推理的内容:

披露:我在VoltDB工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51962394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档