Isso está relacionado a esta questão . Ajuda a obter melhor desempenho para tabelas do InnoDB.
De acordo com o manual do MySQL , innodb_flush_log_at_trx_commit
é uma variável dinâmica global. Assim, eu posso alterá-lo usando o comando SET GLOBAL e parece estar funcionando.
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
Mas isso não alterou a configuração real do MySQL. Quando atualizei o my.cnf e reiniciei o servidor MySQL, ele funcionou. Então, não posso alterar a variável global em tempo de execução?
Prefiro o valor padrão innodb_flush_log_at_trx_commit=1
, mas preciso alterá-lo para 2 antes de executar um processo de restauração para que um banco de dados grande fique mais rápido. Mas quando o processo terminar, quero alterar o valor novamente para 1. É possível fazer isso em tempo de execução?
Não tenho acesso ao my.cnf no meu servidor de hospedagem compartilhada.
SET GLOBAL max_connections = 1000;
e quando corroSHOW VARIABLES LIKE 'max_connections';
para ver o valor antigo deixaria mal-humorado até eu sair e entrar novamente. +1 para esse ponto de vista que é dado como certo e muitas vezes esquecido.