【问题标题】:Which of SUM(val/2) or SUM(val)/2 is better?SUM(val/2) 或 SUM(val)/2 哪个更好?
【发布时间】:2018-04-19 09:02:21
【问题描述】:

我猜

SELECT SUM(val/2) FROM my_table

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

SELECT SUM(val)/2 FROM my_table

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

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

【问题讨论】:

    标签: mysql performance optimization query-optimization aggregate


    【解决方案1】:

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

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

    【讨论】:

    • 我同意这个答案,但我补充说:性能差异可能只有 1% -- 不足以引起注意。
    【解决方案2】:

    如果除以 2 那么这两种方法都是正确的 如果除以 3 或其他数字,那么第一种方法是正确的

    【讨论】:

    • 问题实际上是关于性能(除法执行多少次)
    • 如果是,那么第二个
    猜你喜欢
    • 2020-08-31
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多