根据Firebird FAQ,索引是定向的,这意味着它们不使用经典的B-Trees实现。他们用什么?
有什么好处?其他数据库也使用它吗?
答案 0 :(得分:1)
您提供的链接不包含足够的信息,无法对Firebird使用的索引结构做出结论。
AFAIK,Firebird索引是b-tree变种。我现在没有直接的文档链接来支持我的观点,但你可以看到一些参考文献:
互联网上有很多其他的例子,只是谷歌。
答案 1 :(得分:1)
Firebird使用的索引是B-trees,它们是双向的,但是实际上,由于不认为反向是不可靠的,所以不使用这种双向性。这与更新的顺序以及Firebird如何编写页面有关。结果,如果反向读取发生在索引页拆分发生的同时,则可能会跳过索引页。
另请参阅Firebird for the Database Expert: Episode 3 - On disk consistency:
另一方面,如果您需要一个双链接的页面链-索引 页面浮现在脑海,没有可分离的关系。每页 取决于对方,而且都不能先写。事实上, Firebird索引页是双向链接,但反向链接(高 降序索引中的低位)视为不可靠。用在 重新组合已删除值但未删除值的索引页 用于向后数据扫描。