MySQL参数 kill_idle_transaction 和 innodb_kill_idle_transaction

搬瓦工机场JMS

MySQL官方版本不支持空闲事务自动kill的功能,Percona版本的MySQL引入了参数 kill_idle_transactioninnodb_kill_idle_transaction 来支持自动杀空闲事务。这两个参数本质上是一样的,innodb_kill_idle_transaction 是 kill_idle_transaction 参数的一个别名,在 5.7 版本,两个参数都可以使用,设置其中一个,另外一个也跟着变化。在 8.0 版本只保留了kill_idle_transaction参数。该参数设置的值为事务空闲的时间阈值,单位为秒,当一个事务空闲时间超过该阈值时,就会被强制杀掉。

kill_idle_transaction:

  • 作用范围:全局,不支持session级修改
  • 动态修改:是
  • 默认值:0,即不杀空闲事务

看一个示例,设置kill_idle_transaction为5,然后开启一个事务,5秒之后,提交该事务,发现连接已经被杀掉,如下:

mysql> set global kill_idle_transaction=5;
Query OK, 0 rows affected (0.00 sec)

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> commit;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    309
Current database: db

Query OK, 0 rows affected (0.01 sec)

未经允许不得转载:搬瓦工VPS_美国VPS » MySQL参数 kill_idle_transaction 和 innodb_kill_idle_transaction

赞 (0) 打赏

相关推荐

    暂无内容!

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏