MySQL事务不回滚会有啥影响?
Posted
技术标签:
【中文标题】MySQL事务不回滚会有啥影响?【英文标题】:What will be the impact of MySQL transaction is not rolling back?MySQL事务不回滚会有什么影响? 【发布时间】:2021-04-06 18:39:14 【问题描述】:这是关于 mysql 的一般问题。假设我们已经在我们的脚本中启动了一个事务(脚本可以是 Python、php、Nodejs 等任何语言)并且由于数据中的一些验证问题,我们需要停止脚本。我们已经停止了脚本而不回滚事务。
这种情况下对MySQL会有什么影响?
【问题讨论】:
MySQL 可能会或可能不会受到影响。如需更详细的答案,我们可能希望查看示例脚本 【参考方案1】:在没有交易的情况下,这里实际上有两种结果。如果数据库操作被中断,好的情况是 a) 事务刚刚开始并且没有执行 DML,或者 b) 事务 DML 已经完成。在这种情况下,您的基础数据不会损坏,但您可能不知道交易是否执行。当事务在某些 DML 的中间被切断时,就会发生糟糕的情况。在这种情况下,您的表中可能存在不一致的数据。
真的,在这里唯一安全的方法是使用事务或只执行原子 SQL 语句(但是,它会自动在他们自己的事务中运行)。
【讨论】:
我很困惑,我读到的问题好像一个事务 is 处于活动状态,并且操作人员只想知道如果脚本只是让它未提交会发生什么。 @JoachimIsaksson 好吧,我可能假设脚本会关闭/释放数据库连接,这反过来也应该关闭所有打开的事务。那么,剩下的问题是 MySQL 上的底层数据会发生什么。以上是关于MySQL事务不回滚会有啥影响?的主要内容,如果未能解决你的问题,请参考以下文章