postgresql - 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),但在新索引中必须很少有数据。
我究竟做错了什么?提前致谢。
解决方案
这是一个从未修复的已知错误。哈希索引估计初始大小,但这样做时不考虑部分性质,因此高估了初始大小。为什么不只使用默认(btree)索引?
推荐阅读
- vue.js - Vue if 语句处理得不够快
- delphi - Delphi,使用什么控件代替多对复选框和组合框?
- sql - 链接到多个相关记录的语法
- c++ - gcc 5.4前后的std::accumulate声明
- bash - bash 脚本能否在不杀死它可能已经启动的任何应用程序的情况下终止?
- django - 如何在拍卖应用程序中处理并发出价?
- python - cython中并行函数的运行时间
- java - 为什么 applicationContext.getBean(beanName) 明显存在时返回 null?
- php - 我如何处理和限制在 laravel 项目上执行的查询数量?
- sqlite - 处理这个需要什么 SQLite 列数据类型?