长时间运行的事务如何影响自动提交应用程序?

时间:2015-02-27 19:10:17

标签: mysql transactions innodb isolation-level

这是我目前的情况:有一些现有的应用程序根本不使用显式事务。即应用程序在InnoDB上以自动提交模式运行。我了解默认情况下,这些自动提交的事务隔离级别应为REPEATABLE READ

我必须通过一些长时间运行的后台任务(读写)来扩展该应用程序,我希望将它放入一个事务中。由于我发现了一个虚拟读取场景,我必须选择SERIALIZABLE作为隔离级别。

此事务对现有应用程序的自动提交(主要是读取)有什么影响?我会介绍一下吗阻断?

我理解我的交易可能会失败,但对我来说没问题。

1 个答案:

答案 0 :(得分:1)

在最糟糕的情况下,您的快速运行写入自动提交事务将被阻止,直到某些长时间运行的事务完成。我没有看到您的交易失败的原因,您的自动提交也不会更新。读取查询将始终独立于任何正在运行的事务执行(通过简单地读取事务之前的状态中的数据)

如果您的事务和自动提交更新适用于不同的数据,它们将无痛地同时运行。但你必须弄清楚是否属实。