@serjioms

Как сохранять большое количество статистических данных php + mysql?

+ От сервиса приходит около 800 000 POST/GET запросов с данными в сутки (около 600 запросов в минуту, не учитывая пики). Запрос содержит до 10 параметров, которые и нужно хранить в БД, это данные необходимые для постоения лайф статистики.
+ Нужно сохранять их в БД mysql (возможно используя промежуточные решения).
+ На сервере используется связка php + mysql.

Как наиболее грамотно реализовать сохранине статистических данных, которые генерят запросы, без возможных потерь и блокировок
Что и где почитать по этому вопросу.
  • Вопрос задан
  • 609 просмотров
Решения вопроса 1
Immortal_pony
@Immortal_pony Куратор тега PHP
Например так:

1. Приемщик сообщений складывает сырые данные в какую-то таблицу.
2. Агрегатор вычитывает пачками сырые данные, агрегирует их и складывает подготовленные для отчетов данные в другие таблицы. Сырые данные помечает как обработанные.
3. Архиватор мониторит таблицу сырых данных и переносит старые обработанные данные в архивные таблицы. После работы архиватора таблица оптимизируется.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@serjioms Автор вопроса
Я вижу такое решение. На сколько оно быстро?
<?php

    $mysql = \mysql::_init();

    $rawData = ( \request::is_post ) ? \request::get_raw_post_data : \request::get_raw_get_data;

    $mysql->query("
        INSERT INTO `userStat`
        ( `data` ) 
        VALUES ( '" . $mysql->real_escape_string( json_encode( $rawData) ) . "' )
    ");;

Далее кроном запускаться и обрабатывать данные для дальнейшей статистики.
Ответ написан
Комментировать
@kshvakov
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы