PHP MySQL хранение реквестов

364
25 июня 2017, 16:44

Подскажите, в очень нагруженных проектах бывают таблицы реквестов сплошняком, или хранят только суммарную информацию?

Вопрос возник, так как появился проект на 300-500 тысяч реквестов в день. Сервер с медленным жестким диском (7200). И на таблице реквестов (InnoDb) начали раз в 3-4 часа появляться 5-10 медленных insert-тов по 20-30 секунд весящих. Выкрутил все что можно в Mysql но все равно иногда эти inser-ты всплывают. В таблице id-первичный ключ, и еще один индекс по времени. Версия MySQl 5.6.

Таблица сейчас содержит 5млн записей. Есть вариант либо не хранить вообще реквесты, а оставить только сессии, либо использовать тип таблиц Memory, и информацию по ночам сливать.

Answer 1

Можно вынести нагруженную часть в отдельную БД. Возможно, вместо InnoDb использовать MyIsam, InnoDb не очень быстро вставляет. Я бы рекомендовал не сразу писать в базу, а писать в какую-то очередь, тот же Redis или RabbitMQ или даже в поминутные лог файлы. А уже из очереди крон скриптом выбирать данные и вставлять их в БД.

READ ALSO
Callback telegram бот

Callback telegram бот

Всем приветУчусь делать чат-ботов

388
Как передать GET значение параметра в AJAX request

Как передать GET значение параметра в AJAX request

ЗдравствуйтеВ адресной строке ссылка вида site

344
Как перенести структуру таблиц с одной базы в другую?

Как перенести структуру таблиц с одной базы в другую?

Пример: У меня на локальном сервере есть база и на хостингеЯ работаю только на локальном и за тем заливаю на хост Допустим я сделал изменения...

281