优化MySQL聚合函数 - AVG,MIN,MAX和STDDEV

时间:2013-01-21 22:35:46

标签: mysql optimization

我有一台从1台PC运行的工具。它创建了作业并将它们放在beanstalk上以供其他PC执行。创建作业时,会在job_times表中创建一行,并填充JobIDCreated列。然后,当PC抓取要执行的作业时,将填充Claimed列。成功完成作业后,将填充Completed列。除JobID之外的所有列都填充了* nix时间戳。

我正在为该工具构建一些基本报告,我可以使用像这样的MySQL语句轻松获取统计数据,以确定创建工作和工作声明之间的时间:

SELECT AVG(Claimed - Created) AS ave, STDDEV(Claimed - Created) AS std, MIN(Claimed - Created) AS min, MAX(Claimed - Created) AS max FROM job_times WHERE Claimed > 0 AND Created > 0

我假设在(Claimed - Created)的每个实例中,MySQL都在抓取所有适用的行并进行减法。因此,对于上面的语句,MySQL每行减去4次 - 一次用于AVG,一次用于STDDEV,一次用于MIN,一次用于MAX。

首先,这个假设是否正确?如果是这样,那么有没有办法进行一次减法并为每个聚合函数重复使用它?

由于

0 个答案:

没有答案