共享鎖與排它鎖

2021-06-22 13:45:53 字數 500 閱讀 6878

根據自己理解,物件指行或者表

共享鎖【s鎖】

又稱讀鎖,若事務t對資料物件a加上s鎖,則事務t可以讀a但不能修改a,其他事務只能再對a加s鎖,而不能加x鎖,直到t釋放a上的s鎖。這保證了其他事務可以讀a,但在t釋放a上的s鎖之前不能對a做任何修改。

排他鎖【x鎖】

又稱寫鎖。若事務t對資料物件a加上x鎖,事務t可以讀a也可以修改a,其他事務不能再對a加任何鎖,直到t釋放a上的鎖。這保證了其他事務在t釋放a上的鎖之前不能再讀取和修改a。

1.共享鎖只用於表級,排他鎖用於行級。

2.加了共享鎖的物件,可以繼續加共享鎖,不能再加排他鎖。加了排他鎖後,不能再加任何鎖。

3.比如乙個dml操作,就要對受影響的行加排他鎖,這樣就不允許再加別的鎖,也就是說別的會話不能修改這些行。同時為了避免在做這個dml操作的時候,有別的會話執行ddl,修改表的定義,所以要在表上加共享鎖,這樣就阻止了ddl的操作。

4.當執行ddl操作時,就需要在全表上加排他鎖

**:

共享鎖與排它鎖

共享鎖 s鎖 又稱讀鎖,若事務t對資料物件a加上s鎖,則事務t可以讀a但不能修改a,其他事務只能再對a加s鎖,而不能加x鎖,直到t釋放a上的s鎖。這保證了其他事務可以讀a,但在t釋放a上的s鎖之前不能對a做任何修改。排他鎖 x鎖 又稱寫鎖。若事務t對資料物件a加上x鎖,事務t可以讀a也可以修改a,其...

共享鎖與排它鎖

共享鎖 s鎖 又稱讀鎖,若事務t對資料物件a加上s鎖,則事務t可以讀a但不能修改a,其他事務只能再對a加s鎖,而不能加x鎖,直到t釋放a上的s鎖。這保證了其他事務可以讀a,但在t釋放a上的s鎖之前不能對a做任何修改。排他鎖 x鎖 又稱寫鎖。若事務t對資料物件a加上x鎖,事務t可以讀a也可以修改a,其...

共享鎖與排它鎖

1.測試資料準備 create table test id bigint 11 unsigned not null auto increment comment 主鍵 a int 11 not null,b int 11 not null,primary key id key idx a a eng...