2017-09-15 78 views
2

在MySQL文檔:」 https://dev.mysql.com/doc/refman/5.7/en/innodb-deadlocks-handling.html爲什麼我不應該使用「可重複讀」與鎖定讀數(select..for更新)「

它提到:」 如果使用鎖定讀取(SELECT。 ..更新或選擇...鎖定在共享模式),嘗試使用較低的隔離級別,如READ COMMITTED。

有人能告訴我爲什麼我不能用‘可重複讀’?實例將是不錯的。

乾杯

+0

不,這是不一樣的,我想知道爲什麼我不能使用「可重複讀取」和「選擇....以進行更新」。 –

+0

請編輯你的問題,歡呼 – Prisoner

回答

3

InnoDB中避免使用某些類型的鎖,如果你使用讀提交的。這可以幫助您避免死鎖

我設計這個整體呈現:。InnoDB Locking Explained with Stick Figures

但你幾乎永遠無法避免死鎖的100%的情況下,他們是不是一個錯誤,你是併發系統的一部分。你可以減少發生死鎖的頻率,但你也可以習慣得到一些。設計您的代碼以捕獲異常並在數據庫操作發生死鎖時重試數據庫操作。

相關問題