MySQL鎖使用的基本原則歸納

chenfeng發表於2017-04-27
目前出現的主要鎖型別有以下幾種:
讀鎖:在一個事務對相應資料集進行讀操作時,加入讀鎖。讀鎖又稱共享鎖(Shared,簡稱S鎖),這是因為在一個事務對某資料集加入讀鎖後,仍然允許其他事務對該資料集進行讀操作。
寫鎖:在一個事務對相應資料集進行寫操作時,加入寫鎖。寫鎖又稱排它鎖(eXclusive,簡稱X鎖),這是因為在一個事務對某資料集加入寫鎖後,不再允許其他事務對該資料集進行訪問了。
更新鎖:在一個事務對相應資料集進行更新操作時,加入更新鎖。更新鎖又稱為U鎖(Update的縮寫)。一般地講,這個鎖型別不是必須的。
目前,許多大型資料庫管理系統增加這種鎖型別,主要是為了提高系統查詢的併發性。


鎖使用的基本原則歸納如下:
一個資料集加了S鎖後,可以被其他事務加入S鎖,但是不能再加任何的X鎖或U鎖;
一個資料集加了X鎖後,不能再被其他事務加任何型別的鎖;
一個資料集加了U鎖後,考慮系統的併發效率,可以允許其他事務加入S鎖,但是絕對不能允許再加任何的X鎖或U鎖。
在多副本的情況下,加入S鎖時一般只需要對任意一個副本進行;但是加X鎖時需要對所有的副本實施。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2138076/,如需轉載,請註明出處,否則將追究法律責任。

相關文章