global (mongod 例項) – 所有的資料庫上加鎖
database – 鎖定某個資料庫
collection – 鎖定某個集合
document – 鎖定某個文件
mongo的資源層級結構:global ->db -> collection -> doc
意向鎖加在高層級的,當需要對doc1加x鎖,需要對db和collection加ix,ix,此時如果對doc2加x鎖,就需要獲取db和collection的ix鎖,ix是可以被多個事務獲取的,再獲取doc2的x鎖,這樣就實現了併發修改,此時如果foreground建立索引(庫級別的寫鎖),那個db的ix鎖如果沒有釋放完,是無法無獲取db的x鎖的。
意向鎖為了高層級資源的隔離。
is ixsx
is yes
yesyes
noix
yesyes
nono
syes
noyes
nox
nono
nono
各種鎖的理解
區別 是否可以插隊 預設都是非公平鎖 設定公平鎖 new reentrantlock ture 可以理解為 拿到外面的鎖就會獲得裡面的鎖 synchronized public class demo1 a start new thread b start class phone public syn...
悲觀鎖和樂觀鎖的理解
查了一下悲觀鎖和樂觀鎖的目的主要是為了避免髒讀,看起來和oracle的預設隔離級別read commited是衝突的。因為read commited是可以避免髒讀的。細想一下,果然有問題。請看髒讀的定義 t1修改了記錄,還沒有提交,t2讀取了該記錄,t1回滾了修改。read commited能夠防止...
理解mysql鎖(1)鎖的概述
相對其他資料庫而言,mysql的鎖機制比較簡單 其最顯著的特點是不同的儲存引擎支援不同的鎖機制 但總的來說,mysql各種儲存引擎使用了三種型別的鎖定機制 行級鎖定 頁級鎖定和表級鎖定 其中,myisam主要使用表級鎖定,而使用行級鎖定的主要是innodb。表級鎖 開銷小,加鎖快 不會出現死鎖 鎖定...