小编Ort*_*ntz的帖子

为什么部分 PostgreSQL HASH 索引不小于完整索引?

我想为人口稀少的列创建最有效的索引。我只需要相等操作,所以 HASH 索引应该是有益的。

现在我想知道为什么部分哈希索引不小于完整哈希索引:

CREATE INDEX full_hash    ON mytable USING HASH(my_id); # 256 MB
CREATE INDEX partial_hash ON mytable USING HASH(my_id) WHERE my_ID IS NOT NULL; # 256 MB

CREATE INDEX full_btree    ON mytable (my_id); # 537 MB
CREATE INDEX partial_btree ON mytable (my_id) WHERE my_ID IS NOT NULL; # 32 MB
Run Code Online (Sandbox Code Playgroud)

两个哈希索引占用的空间量完全相同(如 pgHero 所示)。但是,在使用标准 BTREE 索引时,部分索引仅占用完整索引空间的 5%。

PostgreSQL 10 不支持部分 HASH 索引吗?

postgresql index index-tuning postgresql-10

5
推荐指数
1
解决办法
215
查看次数

标签 统计

index ×1

index-tuning ×1

postgresql ×1

postgresql-10 ×1