gpt4 book ai didi

postgresql - 带分区的 Postgres BRIN 索引

转载 作者:行者123 更新时间:2023-12-04 08:54:16 26 4
gpt4 key购买 nike

有问题的表有 3 个相关的列:A、B 和 C。该表应该有 1B 记录以北。
可以使用 A、B、C 创建唯一索引,其中 A 和 B 是文本字段,C 是数字 ID(递增)
C 本身并不是唯一的。
BRIN 索引似乎很适合这个模型。我们有一个递增的整数,其中包含从未更新过索引字段的数据。
BRIN 索引能否有效地与非分区表中的多列索引一起使用,还是应该使用分区而不是每个分区中的单个列上的索引?
对于上下文,99% 的用例是 a、b、c 的查询,其中 c 处于一个范围内(或者如果可能的话,或者按限制排序)。我们还想通过 a, b 查询 MAX c。
感谢您的任何建议。

最佳答案

拥有多列 BRIN 索引没有多大意义,因为 BRIN 保持每个块范围的最小值和最大值。现在使用字典顺序获取组合的最小值和最大值,这不是您想要的。该索引对您无济于事。
但是对于一个仅插入的表,增量 c仅在 c 上设置 BRIN 索引会很有用.
该索引将非常小,并且通过您描述的查询,它可以快速识别一个或几个可能包含匹配行的块范围。这些块必须被扫描,这不像 B 树索引那么快,但可能足够快。使用 BRIN,您可以用大小换取速度。

关于postgresql - 带分区的 Postgres BRIN 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63921135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com