任何人都可以解釋我在MySQL 5.1上找到的死鎖和Lockwait錯誤的細節。它是一樣的嗎?什麼時候發生死鎖錯誤以及鎖定超時發生在什麼時候?MySQL上的死鎖與Lockwait超時
2
A
回答
13
甲死鎖發生其中存在交易必須爲了繼續獲得鎖之間的循環依賴關係:例如,假設事務1持有鎖A,但需要獲得鎖B至前進;並且交易2持有鎖B但需要獲得鎖A以繼續進行—交易是立即死鎖(不需要超時)並且兩者都可以繼續,直到釋放其鎖。因此,唯一的解決方案是回滾一個事務(應用程序代碼應檢測到這種可能性並進行相應處理,通常是通過再次嘗試事務)。
甲等待超時當配置的超時週期(例如innodb_lock_wait_timeout
InnoDB的鎖的情況下 )爲止,而事務等待一個鎖,也許是因爲一個緩慢的查詢持有鎖並且尚未完成執行發生。如果事務等待時間更長,則可能(甚至有可能)該鎖將變爲可用並被獲取,但是存在超時以避免應用程序無限期地等待數據庫。
1
死鎖是兩個線程無限等待在同一件事情上。 鎖定等待超時表示一個線程在等待鎖定時超時,從而防止死鎖。
相關問題
- 1. TinyTDS超時和死鎖LOT
- 2. grails服務與MySQL鎖死
- 3. sqlalchemy + mysql死鎖
- 4. MYSQL中的死鎖
- 5. MySQL的死鎖問題與InnoDB的
- 6. DB2操作超時或死鎖
- 7. 死鎖和超時打破ACID事務
- 8. 在MySQL中創建超時和死鎖錯誤
- 9. MySQL刪除行上的死鎖
- 10. 死鎖與sigsuspend()
- 11. 「死鎖」與MPI_Waitall
- 12. MySQL,索引和「鎖超時超時」
- 13. mysql事務死鎖
- 14. MySQL死鎖問題
- 15. Mysql死鎖檢測
- 16. 與MPI的死鎖
- 17. MySQL死鎖問題(PHP/MYSQL)
- 18. 死鎖只與Galera MYSQL集羣
- 19. MYSQL:死鎖與簡單查詢
- 20. MySQL的死鎖錯誤
- 21. MySQL的死鎖某些列
- 22. 插入Mysql的死鎖
- 23. MySQL的InnoDB的死鎖與排它鎖(FOR UPDATE)
- 24. 在Amazon RDS上調試MySQL死鎖
- 25. 鎖等待超時超標在MySQL
- 26. MySql查詢滯後時間/死鎖?
- 27. existingObjectWithID死鎖與NSPrivateQueueConcurrencyType
- 28. MySQL的 - 死鎖時,試圖獲得鎖定
- 29. 解鎖lock.tryLock與超時
- 30. 死鎖預防(Java + MySQL)
這篇文章中的大部分內容都是錯誤的。新來者請採取eggyal的答案。 –