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

时间:2011-02-11 15:56:27

标签: indexing firebird

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

有什么好处?其他数据库也使用它吗?

2 个答案:

答案 0 :(得分:1)

您提供的链接不包含足够的信息,无法对Firebird使用的索引结构做出结论。

AFAIK,Firebird索引是b-tree变种。我现在没有直接的文档链接来支持我的观点,但你可以看到一些参考文献:

互联网上有很多其他的例子,只是谷歌。

答案 1 :(得分:1)

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

另请参阅Firebird for the Database Expert: Episode 3 - On disk consistency

  

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