Це пов’язано з цим питанням . Це допомагає досягти кращої продуктивності для таблиць InnoDB.
Згідно з посібником MySQL , innodb_flush_log_at_trx_commit
це глобальна динамічна змінна. Таким чином, я можу змінити його за допомогою команди SET GLOBAL і, здається, працює.
mysql> SET GLOBAL innodb_flush_log_at_trx_commit=2;
Query OK, 0 rows affected
mysql> SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit';
+--------------------------------+-------+
| Variable_name | Value |
+--------------------------------+-------+
| innodb_flush_log_at_trx_commit | 2 |
+--------------------------------+-------+
1 row in set
Але фактичні настройки MySQL не змінилися. Коли я оновив my.cnf і перезапустив сервер MySQL, він спрацював. Отже, я не можу змінити глобальну змінну під час виконання?
Я вважаю за краще значення за замовчуванням innodb_flush_log_at_trx_commit=1
, але мені потрібно змінити його на 2, перш ніж запустити процес відновлення для великої бази даних, щоб швидше. Але коли процес закінчений, я хочу змінити значення назад на 1. Чи можливо це зробити під час виконання?
Я не маю доступу до my.cnf на своєму спільному сервері хостингу.
SET GLOBAL max_connections = 1000;
і коли я бігаю,SHOW VARIABLES LIKE 'max_connections';
щоб побачити старе значення, буде означати гайки, поки я не вийду з нього і повернусь.