innodb_buffer_pool_size - чем больше, тем лучне, например 70-80% от размера ОЗУ,
но нет смысла устанавливать значение превышающее размер базы более чем на 10%.
По идее нужно экспериментально вычислить сколько требуется памяти для системы,
и отдать остальное под буферизацию с небольшим запасом, чтобы не допустить своппинг.
innodb_log_file_size - зависит от требований к скорости восстановления после сбоя,
256Мб - хороший баланс между скоростью восстановления и производительностью системы;
innodb_log_buffer_size=4M, 4Мб подходит для большинства ситуаций,
за исключением случая работы с большими блоками данных, хранимых в Innodb таблицах;
innodb_flush_logs_at_trx_commit=2 - если не важен ACID и после краха системы
допустимо потерять транзакции за последние 1-2 секунды;
innodb_thread_concurrency=8, значение по умолчанию вполне адекватно,
можно попробовать уменьшить или увеличить и посмотреть на изменение производительности.
innodb_flush_method=O_DIRECT - исключает двойную буферизацию и уменьшает воздействие
на файл подкачки. Но следует соблюдать осторожность, если ваш RAID без аварийной батарейки.
innodb_file_per_table - можно использовать, если число таблиц невелико.
При разработке приложения можно обратить внимание на использование режиме
READ-COMMITED (transaction-isolation=READ-COMITTED).
|