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

发布于 2024-10-17 03:57:10 字数 145 浏览 1 评论 0原文

根据 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜味超标? 2024-10-24 03:57:11

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

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

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

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:

If, on the other hand, you need a double linked chain of pages - index
pages come to mind, there is no separable relationship. Each page
depends on the other and neither can be written first. In fact,
Firebird index pages are double-linked, but the reverse link (high to
low in a descending index) is handled as unreliable. It's used in
recombining index pages from which values have been removed, but not
for backward data scans.

一抹苦笑 2024-10-24 03:57:11

您提供的链接不包含足够的信息来得出有关 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文