1

我正在使用 Percona 服务器 (MySQL),目前正在开发一个具有多个使用该应用程序的用户的网络桌面应用程序。我的应用程序数据库 innodb 带有事务,但我在选择必须使用的事务隔离时遇到问题,我的应用程序很敏感,因为它有财务记录。那么,有人可以帮我决定我必须使用哪个事务隔离吗?

4

1 回答 1

5

@deceze 和 @zerkms 是正确的 - 决定最佳事务隔离的不是数据的性质。这是您的应用程序及其查询的性质。您甚至可能会发现在同一应用程序中同时使用两种隔离级别的情况。

可重复读取事务确保您可以在给定事务期间多次查询相同的数据,并且您的查询将返回不变的数据——即使同时其他会话正在更改数据。您的会话将不会看到这些更改,即使它们已被提交,直到您的会话开始一个新事务。例如,这对于所有数据的逻辑转储很有用。还有需要多个步骤的复杂报告,您需要多次阅读相同的表格。

已提交读还允许其他会话同时更改数据,但您的事务将始终看到最新提交的数据状态。因此,即使在同一事务期间,相同的查询也可以返回不同的(更新的)结果。这很有用,因为它减少了数据库为长时间运行的事务而保留旧行版本的需要。

还有可序列化未提交读的隔离级别,但很少使用。

于 2013-03-19T02:13:36.763 回答