我有一个查询,其中我按具有很大字段(大多数都有数千个字符)的列进行分组,并且看到性能下降。按其他较小的列分组不会对性能产生比例影响。
我的直觉是group by基于哈希,因此大小无关紧要(我无法找到有关内幕行为的文档)
这里还会有其他事情在起作用吗,还是字段大小会以某种方式影响小组的表现?
答案 0 :(得分:2)
我的直觉是group by基于哈希,因此大小无关紧要
这个反应让我有些困惑。散列需要为两个键操作处理键的整个值:
我对哈希表的Postgres实现并不十分熟悉,但是较大的键值也有占用内存的风险-这将减慢任何算法的速度。
我希望散列的性能与密钥长度成正比。
答案 1 :(得分:0)
您是否尝试过在要分组的字段上创建组合索引?