資料庫中的共享鎖和排他鎖

2021-08-30 23:02:48 字數 515 閱讀 2963

共享鎖:如果事務t對資料a加上共享鎖後,則其他事務只能對a再加共享鎖,不能加排他鎖。獲准共享鎖的事務只能讀資料,不能修改資料。

排他鎖:如果事務t對資料a加上排他鎖後,則其他事務不能再對a加任任何型別的封鎖。獲准排他鎖的事務既能讀資料,又能修改資料。

1、執行select語句時可以獲得共享鎖。oracle通過鎖定指定表來確保沒有人能夠在你使用表資料時修改該錶的結構,但是,被查詢的記錄並沒有進行鎖定。共享鎖無法阻止其他使用者讀取和修改表中的資料,只能阻止其他使用者使用alter table命令改變指定表的結構或用drop table命令刪除指定表。多個使用者可以同時獲得相同資料上的共享鎖。

2、執行dml語句時可以獲得排他鎖,並且正在被修改的所有記錄都會獲得排他鎖。在你啟動的事務內,排他鎖阻止其他使用者獲得正在處理的資料上的排他鎖,直至執行commit或rollback語句。這樣,兩個使用者就無法同時更新相同的資料。某個使用者試圖更新被另乙個使用者鎖定的資料時,第乙個使用者必須等待至去除排他鎖後才能進行操作。

select語句對正在查詢的資料不進行鎖定。

資料庫中的共享鎖與排他鎖

排他鎖,又稱為寫鎖 獨佔鎖,獲得排他鎖之後,既能讀資料,又能修改資料。很多人都知道,鎖是用來解決併發問題的,那麼什麼是併發問題呢?併發情況下,不加鎖會有什麼問題呢?拿生活中的洗手間舉例子,每個洗手間都會有乙個門,並且是可以上鎖的,當我們進入洗手間之後會把門反鎖,當我們出來之後再把鎖開啟。當門被鎖上之...

MySQL 共享鎖和排他鎖

當我們在運算元據庫時,可能由於多使用者併發導致資料不一致性。而鎖的出現就是通過禁止某些操作在一段時間之內來避免這種資料的不一致性。又稱讀鎖 s 對某一資源加共享鎖,自身可以讀該資源,其他人也可以讀該資源 也可以再繼續加共享鎖,即 共享鎖可多個共存 但無法修改。要想修改就必須等所有共享鎖都釋放完之後。...

mysql 排他鎖和共享鎖

mysql 引擎 myisam不支援事務,innodb支援事務 行級鎖 高併發。排他鎖 排他鎖又稱為寫鎖,簡稱x鎖,顧名思義,排他鎖就是不能與其他所並存,如乙個事務獲取了乙個資料行的排他鎖,其他事務就不能再獲取該行的其他鎖,包括共享鎖和排他鎖,但是獲取排他鎖的事務是可以對資料就行讀取和修改。語法 s...