我正在使用Percona (MySQL),目前正在开发一个具有多个使用该应用程序的用户的网络桌面应用程序。我的应用程序数据库不含事务,但在选择我必须使用的Transaction-Isolation时有问题,因为我的应用程序有财务记录,所以很敏感。那么,有人能帮我决定我必须使用哪种事务隔离吗?
发布于 2013-03-19 02:13:36
@deceze和@zerkms是正确的--决定最佳事务隔离的不是数据的性质。这是应用程序及其查询的本质。您甚至可能发现在同一个应用程序中使用两个隔离级别的情况。
Repeatable-read事务确保您可以在给定事务期间多次查询相同的数据,并且您的查询将返回不变的数据--即使数据同时被其他会话更改。在会话启动新事务之前,您的会话将不会看到这些更改,即使它们已经提交。例如,这对于所有数据的逻辑转储都是有用的。另外,复杂的报告需要执行几个步骤,并且需要多次阅读相同的表。
Read-committed还允许其他会话并发地更改数据,但是您的事务将始终看到最新提交的数据状态。因此,即使在同一事务处理期间,相同的查询也可以返回不同的(最新的)结果。这很有用,因为它减少了数据库为了长期运行的事务而保留旧行版本的需要。
还有可序列化和读取未提交的隔离级别,但是很少使用这些级别。
https://stackoverflow.com/questions/15473942
复制相似问题