私は現在、目的が終了したときに統計を更新する必要があるスクリプトをPHPで作成しています。スクリプトはWebブラウザからアクセスされ、トラフィックによっては同時に実行される場合があります。私は統計が正しいことを保証しなければなりません。
あなたに写真を与えるために、私たちがテーブルを持っているとしましょう:
CREATE TABLE statistics(
user_id integer NOT NULL,
date integer NOT NULL, -- for unix time
stat1 integer NOT NULL DEFAULT 0,
stat2 integer NOT NULL DEFAULT 0,
stat3 integer NOT NULL DEFAULT 0 -- and so on...
);
-- Let's insert some testing data for a couple of users and days...
-- Day one
INSERT INTO statistics(1, 1303520820, 1, 1, 1);
INSERT INTO statistics(2, 1303520820, 1, 1, 1);
-- Day two
INSERT INTO statistics(1, 1303603200, 1, 1, 1);
INSERT INTO statistics(2, 1303603200, 1, 1, 1);
-- Day three
INSERT INTO statistics(1, 1303689600, 1, 1, 1);
INSERT INTO statistics(2, 1303689600, 1, 1, 1);
毎日新しい行がテーブルに挿入されるため、日次、週次、月次、年次の統計を取得できます。user_idごとに1日に1行だけ挿入されるようにする必要があります。また、UPDATEクエリが実行されるたびに、列stat1、stat2、stat3が適切にインクリメントされます。
このスクリプトにはかなりのトラフィックが予想されるため、スクリプトが実行され、いくつかのインスタンスが同時に動作しているときに、どのように動作させるかを理解したいと思います。そのようなタスクに最適な方法/手法は何ですか?