1. 程式人生 > >資料庫共享鎖與排它鎖

資料庫共享鎖與排它鎖

共享鎖:如果事務T對資料A加上共享鎖後,則其他事務只能對A再加共享鎖,不能加排他鎖。獲准共享鎖的事務只能讀資料,不能修改資料。
排他鎖:如果事務T對資料A加上排他鎖後,則其他事務不能再對A加任任何型別的封鎖。獲准排他鎖的事務既能讀資料,又能修改資料。
簡要說明為什麼會發生死鎖?解決死鎖的主要方法是什麼?
若干事務相互等待釋放封鎖,就陷入無限期等待狀態,系統就進入死鎖
解決死鎖的方法應從預防和解除的兩個方面著手:
(1)死鎖的預防方法:①要求每一個事務必須一次封鎖所要使用的全部資料(要麼全成功,要麼全不成功)②規定封鎖資料的順序,所有事務必須按這個順序實行封鎖。
(2)允許死鎖發生,然後解除它,如果發現死鎖,則將其中一個代價較小的事物撤消
,回滾這個事務,並釋放此事務持有的封鎖,使其他事務繼續執行。
共享鎖是表級的,排它鎖可以是行級的也可以是表級的。