在PostgreSQL中执行此查询的每一步的顺序是什么?
选择SUM(field1)+SUM(field2)+SUM(field3)-SUM(field4);
据我所知,加减法是按正常的运算顺序进行的--以左向右的顺序排列。我们知道不同的和会发生什么顺序吗?
这是一个长查询的子集(大约40秒用于执行),我认为在执行查询时,字段中的数据可能会实时变化。
发布于 2014-08-05 01:06:34
zerkms的回答切入了你实际需要知道的内容的要点,并且是正确的。在这种简单的情况下,事务隔离将确保您不会受到并发问题的影响(但请注意,它并不是所有并发性的神奇解决方案)。
按照字面意思回答你的问题:它们实际上是交织在一起的。
如果你写:
SELECT SUM(field1)+SUM(field2)+SUM(field3)-SUM(field4) FROM mytable;然后Pg只读一次mytable。它读取每一行,并将mytable.field1提供给第一个sum,将mytable.field2输入第二个sum,然后对每一行重复。
因此,所有的聚合都是并行完成的(尽管没有使用多个CPU)。
https://stackoverflow.com/questions/25127691
复制相似问题