Firebird 使用什么样的索引以及为什么?

问题描述 投票:0回答:2

根据 Firebird FAQ,索引是定向的,这意味着它们不使用经典的 B 树实现。他们用什么?

有什么优点?其他数据库也使用它吗?

indexing firebird
2个回答
2
投票

Firebird 使用的索引是 B-trees,它们是双向的,但实际上并没有使用这种双向性,因为相反的方向被认为是不可靠的。这与更新顺序以及 Firebird 编写页面的方式有关。因此,如果读取发生在索引页拆分发生的同时,则反向读取可能会跳过索引页。

另请参阅 数据库专家的 Firebird:第 3 集 - 磁盘一致性

另一方面,如果您需要双链页面 - 索引 脑海中浮现出页面,没有可分离的关系。每页 依赖于另一个,并且不能先写。实际上, Firebird索引页是双链接的,但是反向链接(高到 降序索引低)被视为不可靠。它用于 重新组合已删除值的索引页,但不重新组合 用于向后数据扫描。


1
投票

您提供的链接没有包含足够的信息来得出有关 Firebird 使用的索引结构的结论。

AFAIK,Firebird 索引是 B 树变体。我现在没有直接的文档链接来支持我的话,但您可以看到一些参考资料:

网上还有很多其他例子,google一下就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.