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)
时,这可能会改变
我想知道 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)
时,这可能会改变