如何在 MySQL 中自动释放锁



我的问题类似于这个问题MySQL在连接丢失/断开连接的事务上回滚,但那是5年前。

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

我指的是它说If --innodb_rollback_on_timeout is specified, a transaction timeout causes InnoDB to abort and roll back the entire transactioninnodb_rollback_on_timeout,但是transaction timeout有多长以及在哪里设置它?

类似问题中接受的答案是使用wait_timeout,如果wait_timeout设置为像 10 秒这样的小数字,那么 pool 中的空闲连接(如果使用)需要每 10 秒测试一次连接才能被 mysql 服务器断开连接,成本是否太高? 还是有其他方法(配置将是最好的)来解决我的问题?

实际上没有transaction timeout的设置,仍然适用wait_timeoutinteractive_timeout--innodb_rollback_on_timeout受影响的是回滚行为(整个事务或交易中的语句)。

相关内容

  • 没有找到相关文章

最新更新