【发布时间】:2011-03-23 23:33:08
【问题描述】:
像 SUM 这样的函数是如何工作的?如果我执行
select id,sum(a) from mytable group by id
它是否按 id 排序,然后对每个相等的 id 范围求和?我不是规划专家,但看起来就是这样,mytable 可能是一亿行,有几百万个不同的 id。
或者它只是保留一个 id -> current_sum 的散列,然后在每一行增加 id 的值或添加一个新键?这不是更快,更省内存吗?
【问题讨论】:
-
最好考虑一下“更快”是否意味着更快地获取结果集的最后一行或第一行(或其他)。
标签: sql postgresql aggregate-functions