这与这个问题有关。它确实有助于为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';
看到旧值将使我无所适从,直到我注销并重新登录。对于这种观点,+ 1是被授予并经常被人们遗忘的。