Лучшие варианты для сохранения активности сайта - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть сид, который со временем увеличивал количество посетителей в час. Одна из первых вещей, которые я делаю, - это регистрация активности (ip, page и action) в таблице путем простой вставки в таблицу. Проблема заключается в том, что после этой вставки существует коммит, который принудительно записывает данные binlog на диск (flu sh log IO).

Это, конечно, вызывает нежелательное узкое место при нагрузке на диски.

Хотелось бы услышать, как ваши 2cents настраивают его.

Я думал над 2 вариантами:

  1. Кэшируйте активность на стороне приложения и массово вставляйте каждый X время / вставки. Недостатком является потенциальная потеря данных в сценарии cra sh.
  2. Для этого используйте mongo / couchbase. Недостатком является то, что это вызовет головную боль, когда я захочу присоединиться к этой таблице с MySQL Tables

1 Ответ

0 голосов
/ 28 апреля 2020
sync_binlog = OFF
innodb_flush_log_at_trx_commit = 2
innodb_doublewrite = OFF

Предупреждение: у каждого есть недостатки.

Альтернативы:

  • Пакетные действия в одной транзакции ..

  • Не входите немедленно; вместо этого очищайте файл журнала веб-сервера каждые 10 минут (или что-то еще), соберите все вместе в несколько INSERT .. ON DUPLICATE KEY UPDATE ... операторов.

...