2013-03-18 53 views
1

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

+0

问题是...? – zerkms 2013-03-18 09:59:09

+0

我必须使用哪种交易隔离? – 2013-03-18 09:59:33

+2

它取决于。您是否首先阅读了http://dev.mysql.com/doc/refman/5.5/en/set-transaction.html? – zerkms 2013-03-18 09:59:55

回答

5

@deceze和@zerkms是正确的 - 数据的本质不是决定最佳事务隔离性质。这是你的应用程序的性质和查询。您甚至可以找到在同一个应用程序中使用两种隔离级别的情况。

重复读取交易保证您可以查询超过一次相同的数据更多的是给定的交易过程中,你的查询将返回不变的数据 - 即使数据是由在此期间其他会话改变。您的会话将不会看到这些更改,即使它们已经提交,直到您的会话开始新的事务。例如,这对于所有数据的逻辑转储很有用。此外,复杂的报告需要几个步骤,而且您需要多次读取相同的表格。

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

也有序列读未提交隔离级别,但这些很少被用到。