作者:小妖 | 来源:互联网 | 2023-08-16 09:17
下面介绍给大家一个参数innodb_kill_idle_transaction(这个是PerconaXtraDB引用的参数),意思为当一个事务长时间未提交,那么这个连接就不能
下面介绍给大家一个参数innodb_kill_idle_transaction(这个是Percona XtraDB引用的参数),意思为当一个事务长时间未提交,那么这个连接就不能关闭,内存就不释放,并发一大,导致DB连接数增多,就会对性能产生影响。
默认是0秒,你可以根据自己的情况设定阈值。超过这个阈值,服务端自动杀死未提交的空闲事务。
MariaDB在10.2.6版本里将其移除,因不再捆绑Percona XtraDB,分道扬镳。
MariaDB在10.3版本里,增加了3个参数,对标Percona的功能。
1)idle_transaction_timeout (所有的事务)
2)idle_write_transaction_timeout (写事务)
3)idle_readonly_transaction_timeout (只读事务)
下面通过例子演示一下:
![MariaDB 10.3支持自动KILL掉未提交的空事务](https://img1.php1.cn/3cd4a/250c2/339/c0e6d94c71993a33.jpeg)
注:单位为秒。这里设置了空事务未提交的时间为2秒,当超过2秒后,系统自动将其连接杀死。
设置这个参数后只针对新的连接有效,正在执行的连接无效。
参考:https://mariadb.com/kb/en/library/transaction-timeouts/