问题描述
目前我有几个表格,总和大约有 4000 列。 1 米欧。每行具有相同的索引列。
我手动构建分区以将这些列拆分为约 1500 个批次(bc. psql 最大列数为 1600)。
解决方法
Citus 10 COLUMNAR 存储似乎很适合您的用例。它使用Projection Pushdown,这意味着如果您通常运行的查询针对几列,它们将跳过不需要的列。
关于您的第二个问题,Columnar 中有某种“索引”。查询使用块组过滤,这允许它们跳过列中某些过滤器的数据块组。让我从一篇关于 Citus columnar 的博客文章中复制并粘贴相关部分:
块组过滤允许查询跳过数据块组 如果元数据表明块组中没有数据 将匹配谓词。换句话说,对于某些类型的查询 和数据集,它可以快速跳过很多数据,而不需要 甚至解压!