В настоящее время я создаю скрипт, который должен обновлять статистику, когда он завершает свою работу.Доступ к сценарию осуществляется через веб-браузер, и в зависимости от трафика он может выполняться одновременно.Я должен гарантировать, что статистика верна.
Чтобы дать вам картину, скажем, у нас есть таблица:
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 в день.Также всякий раз, когда выполняется запрос UPDATE, он будет соответственно увеличивать столбцы stat1 , stat2 , stat3 .
Ожидается, что этот сценарий будет иметь довольно большой трафик, и я хочу выяснить, как заставить все работать, когда сценарий выполняется и имеет несколько экземпляров, работающих одновременно.Какой метод / технику вы считаете наиболее подходящим для таких задач?