2013-03-18 118 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是正確的 - 數據的本質不是決定最佳事務隔離性質。這是你的應用程序的性質和查詢。您甚至可以找到在同一個應用程序中使用兩種隔離級別的情況。

重複讀取交易保證您可以查詢超過一次相同的數據更多的是給定的交易過程中,你的查詢將返回不變的數據 - 即使數據是由在此期間其他會話改變。您的會話將不會看到這些更改,即使它們已經提交,直到您的會話開始新的事務。例如,這對於所有數據的邏輯轉儲很有用。此外,複雜的報告需要幾個步驟,而且您需要多次讀取相同的表格。

讀提交還允許其他會話同時更改數據,但您的事務將始終看到最新的承諾數據狀態。所以相同的查詢可以返回不同的(更新的)結果,即使在同一個事務中也是如此。這很有用,因爲它可以減少數據庫爲了長時間運行事務而保留舊行版本的需要。

也有序列讀未提交隔離級別,但這些很少被用到。