MySQL参数 kill_idle_transaction 和 innodb_kill_idle_transaction

2023年 8月 15日 28.6k 0

MySQL官方版本不支持空闲事务自动kill的功能,Percona版本的MySQL引入了参数 kill_idle_transaction 和 innodb_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)

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论