Thank you for reading this post, don't forget to subscribe!
Параметр innodb_flush_log_at_trx_commit позволяет выбрать стратегию сброса данных на диск при работе MySQL.
Этот параметр настраивается в файле my.cnf (обычно /etc/mysql/my.cnf).
1 |
nano /etc/mysql/my.cnf |
Три варианта значений
1 |
innodb_flush_log_at_trx_commit = 1 |
Значение "1" означает, что любая завершенная транзакция будет синхронно сбрасывать лог на диск. Это вариант по-умолчанию, он является самым надежным с точки зрения сохранности данных, но самым медленным по скорости работы.
1 |
innodb_flush_log_at_trx_commit = 2 |
Значение "2" делает то же самое, только сбрасывает лог не на диск, а в кеш операционной системы (т.е. не происходит flush после каждой операции). Это значение подойдет в большинстве случаев, т.к. не выполняет дорогой операции записи после каждой транзакции. При этом лог пишется на диск с задержкой в несколько секунд, что весьма безопасно с точки зрения сохранности данных.
1 |
<b>innodb_flush_log_at_trx_commit = 0</b> |
Значение "0" даст наибольшую производительность. В этом случае буфер будет сбрасываться в лог файл независимо от транзакций. В этом случае риск потери данных возрастает.
После изменения этого параметра, необходимо перезагружать mysql:
1 |
/etc/init.d/mysql restart |