mysql 聚合函数的性能

mysql performance in aggregation functions

我想知道 MySql 的聚合函数。

请问以下查询:

select sum(c / 1000) from t;

性能优于:

select sum(c) / 1000 from t;

什么时候t是大table?

我决定测试一下,但我不知道你对 "big table" 的定义是什么。

对于这个测试用例,我使用了一个数据库table,其中有 1,063,527 行数据(同样,您的数据集可能更大)

时间如下;

SELECT总和(字段/1000)从table;

0.344   0.359   0.625   0.390   0.594   0.359

SELECT 总和(字段)/ 1000 来自 table;

0.234   0.390   0.219   0.438   0.203   0.485

测试条件

对于每个调用,我都更改了分区号,希望它能避免 "cache",因为结果集会有所不同。所以/1000,999,998等等

我敢肯定有人可以做更好的检查并且有更大的 tables 来查询,但我想尝试一下。

结论

就我个人而言,我看不出两者产生的范围类型有任何区别 - 同样,当您将数据集乘以 (n)

时,这可能会改变