SUM(val / 2)或SUM(val)/ 2中的哪一个更好?

时间:2018-04-19 09:02:21

标签: mysql performance optimization query-optimization aggregate

我认为

SELECT SUM(val/2) FROM my_table

将计算除法次数N次(每行一次)

SELECT SUM(val)/2 FROM my_table

将计算SUM(),然后只计算一次除法

是吗?
对于任何聚合函数?

2 个答案:

答案 0 :(得分:1)

第二个更好。在性能方面,完成的操作数量少于第一种情况。只完成了一个分区,而在前N个分区完成了。

其次,第二个查询的结果比第一个查询更“精确”,因为当和除以2时只进行一次近似。在第一个查询中,近似的val / 2值是sum,并且然后结果近似。

答案 1 :(得分:0)

如果除以2则两种方法都是正确的 如果划分为3或另一个数字,那么第一种方法是正确的