2012-02-10 72 views
2

我試圖用sysbench基準測試(默認配置)試圖顯示MySQL中死鎖和隔離級別之間的關係。但是我得到了一些平庸的結果:我的印象是可重複讀取會比讀取提交更多的死鎖(這種情況),但顯着多於未提交的讀取。事實上,事實證明,未提交的讀取比兩者都有更多的死鎖。MySQL隔離級別,測量它們對死鎖的影響

這是正常的嗎?如果是這樣,爲什麼?

回答

1

Deadlock can happen in any isolation level。在沒有實際測試的情況下很難分辨出來,但我想如果讀取提交/可重複讀取,如果您必須讀取正在更新的行的值,則會從回滾日誌中讀取該值,但是在讀取未使用回滾日誌未使用,因此該行被鎖定以進行更新,讀取必須等待寫入實際值。但這是一個瘋狂的猜測,在閱讀中有更多的僵局是未知的,這是一種奇怪的行爲,很可能 - 依賴於實現。如果您可以提供實際的測試,並且測試可以在不同版本的MySQL中重複,我會感興趣。