Задать вопрос
@anatoly60

Как эффективно сделать INSERT сразу в несколько таблиц?

Есть таблицы:

visitors_daily (date, ip, count)
visitors_weekly (date, ip, count)
visitors_monthly(date, ip, count)
visitors_yearly(date, ip, count)

Нужно записывать данные о посетителях. Посетителей очень много. Например 1000 в секунду.
Как наиболее эффективно записать данные сразу в несколько таблиц? Нужно минимизировать траффик к СУБД и нагрузку на СУБД.

Для посетителя с IP=1.2.3.4 от 2015-07-18
нужно записать

2015-07-18 в daily
2015-07-06 (понедельник) в weekly
2015-07-01 (первое число месяца) в montly
2015-01-01 в yearly.

Первичный ключ date-ip. В случае дупликатов увеличить count на единицу.
Желательно решение и для Postgres и для MySQL.
  • Вопрос задан
  • 298 просмотров
Подписаться 2 Оценить Комментировать
Ответ пользователя sim3x К ответам на вопрос (4)
sim3x
@sim3x
Пиши в файлы на каждом серваке отдельно
Файлы собирай с серваков
Читай из файлов
Агрегируй
Вставляй через транзакцию

Еженедельные и ежемесячные создавай, когда наступит их время

бадуу занимается таким через scribe, но тебе подойдет и rsync
https://www.youtube.com/watch?v=LtdsjspZ4xM
А вообще, ты так теряешь большой пласт информации про пользователя
Ответ написан