資料併發會引起很多問題,資料庫通過鎖機制來解決併發訪問的問題,雖然不同的資料庫在實現細節上存在差別,但是原理都差不多,下面介紹一下資料庫的鎖機制
按鎖定的物件不同分為表鎖定和行鎖定,表鎖定對整個表進行鎖定,行鎖定針對特定的行進行鎖定,從併發事務鎖定的關係上看,可以分為共享鎖定和獨佔鎖定,共享鎖定會防止獨佔鎖定,允許其他的共享鎖定,而獨佔鎖定既防止其他的獨佔鎖定,也防止其他的共享鎖定。下面介紹一下oracle的五種鎖定:
1 行共享鎖定:一般通過select for update 語句隱式獲得行共享鎖定,在oracle中使用者可以通過lock table in row share mode 語句顯示獲得行共享鎖定。行共享鎖定並不防止對資料進行更改操作,但是防止其他會話獲取獨占性資料表鎖定。
2 行獨佔鎖定:通過一條insert,update,delete語句隱式獲取,或者通過一條lock table in row exclusive mode 語句顯示獲取。這個鎖定可以防止其他會話獲取乙個共享鎖定,共享行獨佔鎖定或者獨佔鎖定。
3 表共享鎖定:通過一條lock table in share mode 語句顯示獲得,這種鎖定可以防止其他會話獲取行獨佔鎖定(insert,update,delete),或者防止其他錶行獨佔鎖定或者表獨佔鎖定,他允許在表中擁有多個行共享和表共享鎖定
4 表共享行獨佔:通過lock table in share row exclusive mode 語句顯示獲得,這種鎖定可以防止其他會話獲取乙個表共享鎖定,只是一次只能對乙個表放置表共享行獨佔鎖定
5 表獨佔:通過lock table in exclusive mode顯示獲得,這個蘇定防止其他會話對該錶的任何其他鎖定
資料庫鎖機制
這段時間由於開發專案,重新學習了資料庫的併發控制和鎖機制。資料庫就是通過鎖機制來解決併發問題的。主要就是兩種鎖,共享鎖和排他鎖 也叫獨佔鎖 在執行select語句的時候需要給操作物件 表或者一些記錄 加上共享鎖,但加鎖之前需要檢查是否有排他鎖,如果沒有,則可以加共享鎖 乙個物件上可以加n個共享鎖 否...
資料庫鎖機制
這段時間由於開發專案,重新學習了資料庫的併發控制和鎖機制。資料庫就是通過鎖機制來解決併發問題的。主要就是兩種鎖,共享鎖和排他鎖 也叫獨佔鎖 在執行select語句的時候需要給操作物件 表或者一些記錄 加上共享鎖,但加鎖之前需要檢查是否有排他鎖,如果沒有,則可以加共享鎖 乙個物件上可以加n個共享鎖 否...
資料庫鎖機制
資料庫就是通過鎖機制來解決併發問題的。主要就是兩種鎖,共享鎖和排他鎖 也叫獨佔鎖 在執行select語句的時候需要給操作物件 表或者一些記錄 加上共享鎖,但加鎖之前需要檢查是否有排他鎖,如果沒有,則可以加共享鎖 乙個物件上可以加n個共享鎖 否則不行。共享鎖通常在執行完select語句之後被釋放,當然...