更新时间:2026-01-13 GMT+08:00
分享

主动终止空闲事务

操作场景

当一个事务长时间空闲且不提交,执行回滚操作时,会对数据库的资源和性能造成损耗。如果有大量的空闲事务长期不执行也不提交,在业务高峰期的时候发生回滚,性能损耗会较为严重。TaurusDB支持主动终止空闲事务,可针对不同类型的事务用不同的参数进行控制,当空闲事务超时后会被自动的回滚并断开连接。

前提条件

内核版本为2.0.39.230300及以后的版本支持该功能。内核版本的查询方法请参见如何查看云数据库 TaurusDB实例的版本号

参数介绍

show variables like '%idle%';
+------------------------------------+------+
| Variable_name                     | Value |
+-----------------------------------+-------+
| idle_readonly_transaction_timeout | 0     |
| idle_transaction_timeout         | 0     |
| idle_write_transaction_timeout   | 0     |
+-----------------------------------+-------+
表1 参数说明

参数名

级别

参数描述

idle_readonly_transaction_timeout

global、session

控制只读事务连接的超时时间,单位为秒。

参数设置为0时不生效,即表示只读事务连接的超时时间没有限制。

idle_transaction_timeout

global、session

控制一般空闲事务连接的超时时间,单位为秒。

参数设置为0时不生效,即表示一般空闲事务的连接超时时间没有限制。

idle_write_transaction_timeout

global、session

控制读写事务连接的超时时间,单位为秒。

参数设置为0时不生效,即表示读写事务连接的超时时间没有限制。

上述三个变量的关系:idle_readonly_transaction_timeout和idle_write_transaction_timeout的优先级高于idle_transaction_timeout。

图1 只读事务
图2 读写事务

示例

相关文档