字段大小是否会影响效果分组

时间:2020-07-05 18:01:03

标签: sql postgresql performance

我有一个查询,其中我按具有很大字段(大多数都有数千个字符)的列进行分组,并且看到性能下降。按其他较小的列分组不会对性能产生比例影响。

我的直觉是group by基于哈希,因此大小无关紧要(我无法找到有关内幕行为的文档)

这里还会有其他事情在起作用吗,还是字段大小会以某种方式影响小组的表现?

2 个答案:

答案 0 :(得分:2)

我的直觉是group by基于哈希,因此大小无关紧要

这个反应让我有些困惑。散列需要为两个键操作处理键的整个值:

  1. 产生哈希值。
  2. 检查哈希表中的冲突。

我对哈希表的Postgres实现并不十分熟悉,但是较大的键值也有占用内存的风险-这将减慢任何算法的速度。

我希望散列的性能与密钥长度成正比。

答案 1 :(得分:0)

您是否尝试过在要分组的字段上创建组合索引?