Запустите MySQL в памяти с ведомым для сохранения
Давайте предположим, что мне нужно максимально повысить производительность записи, и я готов рискнуть потерять несколько минут. Мой вариант использования - это "всплеск" активности на несколько часов, который утихнет. Рабочая нагрузка очень большая.
Предположим, ради аргумента, что данные не настолько срочны, что несколько минут потерянных данных вызовут столько же проблем, сколько медленный сервер. По независящим от меня причинам мастер должен работать на EC2, поэтому скорость диска может быть проблемой.
Моя потенциально сумасшедшая идея состоит в том, чтобы иметь основную базу данных, которая полностью работает в ОЗУ (либо в виде таблицы MEMORY, либо в виде InnoDB, поддерживаемой диском ОЗУ), а затем реплицировать ее в ведомое устройство для слегка задержанного сохранения. Что пойдет не так?
1 ответ
Просто используйте InnoDB с огромным буферным пулом и установите innodb_flush_log_at_trx_commit=2
или 0. Это в значительной степени то, что вы описываете.