根据 Firebird FAQ,索引是定向的,这意味着它们不使用经典的 B 树实现。他们用什么?
有什么优点?其他数据库也使用它吗?
Firebird 使用的索引是 B-trees,它们是双向的,但实际上并没有使用这种双向性,因为相反的方向被认为是不可靠的。这与更新顺序以及 Firebird 编写页面的方式有关。因此,如果读取发生在索引页拆分发生的同时,则反向读取可能会跳过索引页。
另请参阅 数据库专家的 Firebird:第 3 集 - 磁盘一致性:
另一方面,如果您需要双链页面 - 索引 脑海中浮现出页面,没有可分离的关系。每页 依赖于另一个,并且不能先写。实际上, Firebird索引页是双链接的,但是反向链接(高到 降序索引低)被视为不可靠。它用于 重新组合已删除值的索引页,但不重新组合 用于向后数据扫描。
您提供的链接没有包含足够的信息来得出有关 Firebird 使用的索引结构的结论。
AFAIK,Firebird 索引是 B 树变体。我现在没有直接的文档链接来支持我的话,但您可以看到一些参考资料:
网上还有很多其他例子,google一下就可以了。