Firebird 使用什么类型的索引以及为什么?
根据 Firebird FAQ,索引是定向的,这意味着它们不使用经典的 B 树执行。他们用什么?
有什么优点?其他数据库也使用它吗?
According to the Firebird FAQ, indexes are directional, which means they don't use the classical B-Trees implementation. What do they use?
What are the advantages? Do other databases use it too?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Firebird 使用的索引是 B 树,它们是双向的,但实际上不使用这种双向性,因为相反的方向被认为是不可靠的。这与更新顺序以及 Firebird 编写页面的方式有关。因此,如果读取发生在索引页拆分发生的同时,则反向读取可能会跳过索引页。
另请参阅 Firebird 数据库专家:第 3 集 - 磁盘一致性:
The indexes used by Firebird are B-trees, and they are bi-directional, but in practice this bi-directionality is not used because the reverse direction is considered unreliable. This has to do with the order of updates and how Firebird writes pages. As a result, a read in the reverse direction could skip index pages if that read happens at the same time an index page split occurs.
See also Firebird for the Database Expert: Episode 3 - On disk consistency:
您提供的链接不包含足够的信息来得出有关 Firebird 使用的索引结构的结论。
AFAIK,Firebird 索引是 b 树变体。我现在没有直接的文档链接来支持我的话,但您可以看到一些参考资料:
还有许多其他示例互联网,只需谷歌即可。
The link you provided does not contain enough information to make a conclusion about index structure used by Firebird.
AFAIK, Firebird indexes are b-tree variants. I do not have a direct documentation link right now to support my word, but you can see some references:
There are many other examples on the internet, just google it.