MySQL數(shù)據(jù)庫中的死鎖是指兩個或多個事務互相等待對方釋放鎖定資源的情況。在這種情況下,這些事務都無法向前推進,直到被中止或一些資源被釋放。
下面是一個示例,在該示例中,兩個事務同時嘗試獲取兩個不同的資源,但以相反的順序:
Transaction 1 Transaction 2 ---------------- ---------------- SELECT * FROM table1 SELECT * FROM table2 (Waits for lock) SELECT * FROM table2 (Waits for lock)
在這種情況下,如果沒有干預,則這兩個事務將永遠地相互鎖住。MySQL檢測到這種情況并像這樣中止了其中一個事務:
Transaction 1 Transaction 2 ---------------- ---------------- SELECT * FROM table1 (Waits for lock) SELECT * FROM table2 (Waits for lock) (Timeout) ROLLBACK
如果你看到這種情況發(fā)生在你的MySQL應用程序中,你需要重新評估你的數(shù)據(jù)庫設計,確保你的事務順序是一致的,并嘗試使用更少的死鎖保證。
上一篇css圖片自適應手機端
下一篇css圖片設置size