Ceci est lié à cette question . Cela aide à obtenir de meilleures performances pour les tables InnoDB.
Selon le manuel MySQL , innodb_flush_log_at_trx_commit
est une variable dynamique globale. Ainsi, je peux le changer en utilisant la commande SET GLOBAL et cela semble fonctionner.
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
Mais, cela n'a pas modifié le paramètre MySQL réel. Lorsque j'ai mis à jour my.cnf et redémarré le serveur MySQL, cela a fonctionné. Donc, je ne peux pas changer la variable globale au moment de l'exécution?
Je préfère la valeur par défaut innodb_flush_log_at_trx_commit=1
, mais je dois la changer à 2 avant d'exécuter un processus de restauration pour une grande base de données pour obtenir plus rapidement. Mais une fois le processus terminé, je souhaite redéfinir la valeur sur 1. Est-il possible de le faire au moment de l'exécution?
Je n'ai pas accès à my.cnf sur mon serveur d'hébergement partagé.
SET GLOBAL max_connections = 1000;
et quand je coursSHOW VARIABLES LIKE 'max_connections';
pour voir l'ancienne valeur conduirait à des écrous méchants jusqu'à ce que je me déconnecte et me reconnecte . +1 pour ce point de vue qui est tenu pour acquis et souvent oublié.