事務和鎖--檢視資料庫中的鎖
阿新 • • 發佈:2020-12-10
資料庫加鎖是修改哪一條加鎖,還是在頁上加鎖,還是在表上加鎖,資料庫來決定
如果你更改的是兩條記錄,就在兩條記錄上加鎖,如果你更改的是很多條,這個時候資料庫一看一條一條加鎖太麻煩,給整個頁加鎖更省事,或者給整個表加鎖更加省事
加鎖的級別越大,資料庫越省事,資料庫越省事,併發性越差,修改一條記錄如果給表加上獨佔鎖,那麼想查詢別的記錄都查詢不了了
加鎖的物件越小,併發性越好
加的鎖物件越大,併發性越差
剛開始就這幾個鎖
1、開啟事務修改學生的名字,給學號為0000000001的學生姓名加個‘_01’,事務不提交
2、看到給Student表上的這1行加了獨佔鎖
ObjId:2105058535表示是Student這張表
Resource:1:567:0,表示是第1個數據檔案的第576頁的第1行
Mode:X表示獨佔鎖
所以如下圖查詢學號為0000000001的學生,因為這行資料加了獨佔鎖,所以一直查詢不出來
但是如下圖查詢學號不為0000000001的學生,就可以查詢出來資料了,因為其他行並沒有鎖
3、開啟事務修改學生的名字,給學號對2取餘等於0的這1批學生姓名加個_01,事務不提交
4、看到給Student表加了獨佔鎖
ObjId:2105058535表示是Student這張表
Type:TAB表示是表
Mode:X表示獨佔鎖
如下圖查詢學號不為0000000001的學生或者查詢任何資料,因為這個表加了獨佔鎖,所以都不會查詢出來