Questo è legato a questa domanda . Aiuta a ottenere prestazioni migliori per le tabelle InnoDB.
Secondo il manuale di MySQL , innodb_flush_log_at_trx_commit
è una variabile dinamica globale. Quindi, posso cambiarlo usando il comando SET GLOBAL e sembra funzionare.
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
Tuttavia, non ha modificato le impostazioni effettive di MySQL. Quando ho aggiornato my.cnf e riavviato il server MySQL, ha funzionato. Quindi, non posso cambiare la variabile globale in fase di esecuzione?
Preferisco il valore predefinito innodb_flush_log_at_trx_commit=1
, ma devo cambiarlo in 2 prima di eseguire un processo di ripristino per un database di grandi dimensioni per ottenere più velocemente. Ma una volta terminato il processo, desidero riportare il valore su 1. È possibile farlo in fase di esecuzione?
Non ho accesso a my.cnf sul mio server di hosting condiviso.
SET GLOBAL max_connections = 1000;
e quando corroSHOW VARIABLES LIKE 'max_connections';
per vedere il vecchio valore significherebbe impazzire fino a quando non mi disconnetto e riconnetto . +1 per questo punto di vista dato per scontato e spesso dimenticato.