【问题标题】:What happens to mysql transaction after exceeded wait timeout?超过等待超时后mysql事务会发生什么?
【发布时间】:2017-08-15 13:34:49
【问题描述】:

我是 MySQL 数据库的新手,遇到了一些表锁/死锁问题。我们正在运行一个每天运行大量事务的系统,有时会发生死锁。如果交易超过等待超时,我想知道交易发生了什么。他们是否被取消(回滚)?我们需要再次手动运行事务还是在解决死锁后应用程序自动重试事务? 我正在使用带有 Innodb 引擎的 MySQL 5.7。

谢谢

【问题讨论】:

    标签: mysql database transactions


    【解决方案1】:

    不管你使用的是什么数据库,如果你使用的是事务,它只会在成功时提交,即如果你仔细观察,在你写的尝试结束时有一个提交事务命令 ,除非该行被调用,否则不会对数据库进行任何更改因此您可以放心,它会在超时错误的情况下回滚

    【讨论】:

    • 是的..我知道。但这里真正的问题与表锁/死锁有关,事务是由我们系统中的用户运行的..
    • 在死锁的情况下,它会等到超时之后才会发生事务,尽管如果它是读取器功能,您可以不使用锁
    猜你喜欢
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 2015-09-27
    • 2019-03-11
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多