无论对MySQL数据库所做的任何更改,这些更改是否都可以在同一事务中读取?或者我应该提交事务来阅读更改吗?
我可以很容易地测试一下。但是在SO中提出问题会带来很多好的建议。感谢您的任何意见。
答案 0 :(得分:3)
假设你正在使用InnoDB,你的第一个问题的答案通常是肯定的,暗示你的第二个问题的答案通常是否定的。
默认情况下,MySQL的InnoDB使用一种名为consistent non-locking reads的技术:
查询查看所做的更改 之前提交的交易 那个时间点,没有变化 由后来或未提交的 交易。例外 规则是查询看到的 早期声明所做的更改 在同一笔交易中。
话虽如此,关于交易还有很多东西需要了解。您可以更改isolation level of a transaction,以便更彻底地控制交易结果。
关于InnoDB Transaction Model的章节是一个很好的起点。