从事务中读取更改

时间:2010-02-05 04:18:12

标签: mysql transactions

无论对MySQL数据库所做的任何更改,这些更改是否都可以在同一事务中读取?或者我应该提交事务来阅读更改吗?

我可以很容易地测试一下。但是在SO中提出问题会带来很多好的建议。感谢您的任何意见。

1 个答案:

答案 0 :(得分:3)

假设你正在使用InnoDB,你的第一个问题的答案通常是肯定的,暗示你的第二个问题的答案通常是否定的。

默认情况下,MySQL的InnoDB使用一种名为consistent non-locking reads的技术:

  

查询查看所做的更改   之前提交的交易   那个时间点,没有变化   由后来或未提交的   交易。例外   规则是查询看到的   早期声明所做的更改   在同一笔交易中。

话虽如此,关于交易还有很多东西需要了解。您可以更改isolation level of a transaction,以便更彻底地控制交易结果。

关于InnoDB Transaction Model的章节是一个很好的起点。