下面介绍给大家一个参数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 (只读事务)

下面通过例子演示一下:

图片.png

注:单位为秒。这里设置了空事务未提交的时间为2秒,当超过2秒后,系统自动将其连接杀死。

设置这个参数后只针对新的连接有效,正在执行的连接无效。

参考:https://mariadb.com/kb/en/library/transaction-timeouts/