首页 > 解决方案 > PG10中带条件的哈希索引

问题描述

我正在使用 Postgresql 10,并且我有以下结构的表:

primary_key_id;....;foreign_key_id

foreign_key_id字段是 bigint 升序而不是空字段,我有一个哈希索引。它太大了,我决定创建两个带有条件的部分索引,foreign_key_id > <SOME_VALUE>并将foreign_key_id <= <SOME_VALUE>带有“旧”数据的索引放入另一个表空间。

我已经成功创建了它们,但它们的大小实际上是相同的(17Gb 与 19Gb),但在新索引中必须很少有数据。

我究竟做错了什么?提前致谢。

标签: postgresqlpostgresql-10

解决方案


这是一个从未修复的已知错误。哈希索引估计初始大小,但这样做时不考虑部分性质,因此高估了初始大小。为什么不只使用默认(btree)索引?


推荐阅读