資料庫為什麼需要鎖定機制?能用程式碼舉出詳細的例子嗎,謝謝!
比方說搶購場景 10000個人搶一件商品 如果沒有鎖機制 就有可能出現2333個人搶到這件商品 這時候你要賣給誰呢
資料庫和作業系統一樣,都是一個多用戶使用的共享資源。當多個使用者並發地存取資料 時,在資料庫中就會產生多個事務同時存取相同資料的情況。若對並發操作不加控制就可能會讀取和儲存不正確的數據,破壞資料庫的一致性。加鎖是實作資料庫並 發控制的一個非常重要的技術。在實際應用中經常會遇到的與鎖相關的異常情況,當兩個事務需要一組有衝突的鎖,而不能將事務繼續下去的話,就會出現死鎖,嚴 重影響應用的正常執行。
在資料庫中有兩種基本的鎖定類型:排它鎖(Exclusive Locks,即X鎖)排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)和共享鎖定(Share Locks,即S鎖定)。 當資料物件被加上排它鎖時,其他的事務不能對它讀取和修改。加了共享鎖的資料物件可以被其他事務讀取,但不能修改。資料庫利用這兩 種基本的鎖類型來對資料庫的事務進行並發控制。
排它鎖(Exclusive Locks,即X鎖)
排它锁(Exclusive Locks,即X锁)
共享锁(Share Locks,即S锁)
共享鎖定(Share Locks,即S鎖定)
主要是用來解決並發問題的,確保資料一致性。教學網路上很多的,附網址給你:http://www.cnblogs.com/fanp/p...
比方說搶購場景 10000個人搶一件商品 如果沒有鎖機制 就有可能出現2333個人搶到這件商品 這時候你要賣給誰呢
資料庫和作業系統一樣,都是一個多用戶使用的共享資源。當多個使用者並發地存取資料 時,在資料庫中就會產生多個事務同時存取相同資料的情況。若對並發操作不加控制就可能會讀取和儲存不正確的數據,破壞資料庫的一致性。加鎖是實作資料庫並 發控制的一個非常重要的技術。在實際應用中經常會遇到的與鎖相關的異常情況,當兩個事務需要一組有衝突的鎖,而不能將事務繼續下去的話,就會出現死鎖,嚴 重影響應用的正常執行。
在資料庫中有兩種基本的鎖定類型:
🎜排它鎖(Exclusive Locks,即X鎖)
排它锁(Exclusive Locks,即X锁)
和共享锁(Share Locks,即S锁)
和共享鎖定(Share Locks,即S鎖定)
。 當資料物件被加上排它鎖時,其他的事務不能對它讀取和修改。加了共享鎖的資料物件可以被其他事務讀取,但不能修改。資料庫利用這兩 種基本的鎖類型來對資料庫的事務進行並發控制。主要是用來解決並發問題的,確保資料一致性。教學網路上很多的,附網址給你:
http://www.cnblogs.com/fanp/p...