【问题标题】:How BTree boolean index would look like in PostgreSQL?BTree 布尔索引在 PostgreSQL 中的外观如何?
【发布时间】:2022-01-14 10:49:32
【问题描述】:

我知道一些 BTree 数据结构的基础知识,但我想知道 pgsql 中如何引用实际数据。让我们以boolean 为例,如果我们在一个简单的 BTree (true/false) 中只有两个值 - 很明显,我们将只有两个节点(实际上一个节点有两个值,但让我们谈谈超级简单),但在 pgsql 中我们也存储对实际数据的引用。这样的索引在 pgsql 中的结构会是什么样子?

它会像两个节点(对于真/假)带有一些对实际行的引用列表,还是像带有false 的头部,以及附加到它的两个链表(对于左为假,对于左为真)对或类似的东西)?

这个问题可能很愚蠢,但我在谷歌上找不到任何有用的东西。

【问题讨论】:

标签: sql postgresql b-tree


【解决方案1】:

B 树索引每个表行有一个条目。因此,如果您的表有 1 亿行,则索引将有 1 亿个条目。 v13 中引入的index de-duplication 在一定程度上缓解了这种情况。

GIN 索引可能会更小(需要扩展名btree_gin),但修改成本会更高。 GIN 索引只有两个条目,但每个条目都有一个很大的 posting tree

很多时候,booleanis not useful 上的索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 2020-07-06
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    相关资源
    最近更新 更多