0

1 台の PC から実行できるツールがあります。ジョブを作成し、他の PC で実行するために Beanstalk に配置します。ジョブが作成されると、job_times テーブルの行が作成され、JobIDおよびCreated列が入力されます。次に、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 に対して 1 回、STDDEV に対して 1 回、MIN に対して 1 回、MAX に対して 1 回です。

まず、この仮定は正しいですか?もしそうなら、減算を一度行い、それを集計関数ごとに再利用する方法はありますか?

ありがとう

4

0 に答える 0