如何在mysql中自动释放锁

时间:2017-12-07 04:28:27

标签: mysql transactions timeout locking

我的问题类似于这个问题MySQL rollback on transaction with lost/disconnected connection,但它是在5年前。

如果客户端(如jdbc或其他东西)在表中锁定一行,执行一些语句然后网络关闭,所以mysql永远不会从客户端收到commitrollback命令,mysql是否支持自动回滚此事务(解锁行)?

我引用innodb_rollback_on_timeout它说If --innodb_rollback_on_timeout is specified, a transaction timeout causes InnoDB to abort and roll back the entire transaction,但是transaction timeout有多长时间以及设置它的位置?

类似问题中接受的答案是使用wait_timeout,如果wait_timeout设置为10秒的小数字,那么池中的空闲连接(如果使用)需要每10个测试一次连接它们被mysql服务器断开之前的几秒钟,成本是否过高?还是有其他方法(配置最好)来解决我的问题?

1 个答案:

答案 0 :(得分:0)

实际上,transaction timeoutwait_timeoutinteractive_timeout仍然没有设置。 --innodb_rollback_on_timeout影响的是回滚的行为(整个事务或转换中的语句)。