BRIN索引创建
BRIN index creation
我正在尝试使用 BRIN 索引,我想确保在创建索引之前我的数据是有序的。
在
Change order of the table rows in PostgreSQL and
帖子、评论和答案,最好在您的列上放置一个 order by 子句,执行 BRIN 索引,然后关闭 table 上的约束。一旦约束消失,这是否有效并维护 BRIN 索引(索引不会爆炸)?
我似乎无法让 BRIN 索引对我的查询产生任何积极的性能影响,正如第二个 link 的发帖人所注意到的那样。第一个 link 中的答案似乎是一种可能的方法,但我找不到如何在创建或更改 table.
时在列上按约束添加顺序
table 没有 ORDER BY
子句。
你唯一能做的就是用CLUSTER
命令按照某个索引的顺序重写一个table。由于 BRIN 索引仅在排序完美时才有效,因此只要不再对数据库进行修改,您就可以使用 BRIN 索引。这里的例外是 INSERT
的顺序正确(例如,如果 BRIN 索引的时间戳总是递增)。
所以BRIN索引只对数据不被修改的数据仓库和时间序列有用。它们也不能用于支持 ORDER BY
.
如有疑问,请使用 B 树索引。
我正在尝试使用 BRIN 索引,我想确保在创建索引之前我的数据是有序的。
在
Change order of the table rows in PostgreSQL and
我似乎无法让 BRIN 索引对我的查询产生任何积极的性能影响,正如第二个 link 的发帖人所注意到的那样。第一个 link 中的答案似乎是一种可能的方法,但我找不到如何在创建或更改 table.
时在列上按约束添加顺序table 没有 ORDER BY
子句。
你唯一能做的就是用CLUSTER
命令按照某个索引的顺序重写一个table。由于 BRIN 索引仅在排序完美时才有效,因此只要不再对数据库进行修改,您就可以使用 BRIN 索引。这里的例外是 INSERT
的顺序正确(例如,如果 BRIN 索引的时间戳总是递增)。
所以BRIN索引只对数据不被修改的数据仓库和时间序列有用。它们也不能用于支持 ORDER BY
.
如有疑问,请使用 B 树索引。