鎖 悲觀鎖和樂觀鎖

2021-10-08 13:12:48 字數 518 閱讀 5803

1. 頁鎖,頁的粒度上進行鎖定。

2. 表鎖,對資料表進行鎖定,鎖定粒度很大,同時發生鎖衝突的概率也會較高,資料訪問的併發度低。不過好處在於對鎖的使用開銷小,加鎖會很快。

3. 行鎖,按照行的粒度對資料進行鎖定。鎖定力度小,發生鎖衝突概率低,可以實現的併發度高,但是對於鎖的開銷較大,加鎖較慢,容易出現死鎖。

* 讀鎖,s鎖,共享鎖的資源可以被其它使用者讀取,但是不能修改。
* 獨佔鎖,寫鎖,x鎖。鎖定的資料只允許進行鎖定的操作的事務使用,其它事務無法使用。
* 多個事務對同一資料獲取讀鎖的時候,可能會出現死鎖的情況。
* 樂觀鎖,認為對同一資料的併發操作不會總發生,屬於小概率事件,不用每次都對資料上鎖,也就是不採用資料庫自身的鎖機制,而是通過程式來實現。時間戳或者版本號。

1. 樂觀鎖的版本號機制。

2. 樂觀鎖的時間戳機制s

悲觀鎖和樂觀鎖

1.悲觀鎖,正如其名,它指的是對資料被外界 包括本系統當前的其他事務,以及來自外部系統的事務處理 修改持保守態度,因此,在整個資料處理過程中,將資料處於鎖定狀態。悲觀鎖的實現,往往依靠資料庫提供的鎖機制 也只有資料庫層提供的鎖機制才能真正保證資料訪問的排他性,否則,即使在本系統中實現了加鎖機制,也無...

悲觀鎖和樂觀鎖

前幾天有人問了我乙個問題,說如果資料庫某些操作不用事務,那麼又需要保持資料的一致性,那麼該用什麼方法替代事務。我就想到了悲觀鎖和樂觀鎖的思想,下面我解釋一下在資料庫中的悲觀鎖和樂觀鎖 1.悲觀鎖就是把資料庫的一些操作,放在事務當中,依賴資料庫的隔離級別,實現對資料修改的封鎖,這樣做資料一致性可以保持...

悲觀鎖和樂觀鎖

悲觀鎖 pessimistic lock 顧名思義,就是很悲觀,每次去拿資料的時候都認為別人會修改,所以每次在拿資料的時候都會上鎖,這樣別人想拿這個資料就會block直到它拿到鎖。傳統的關係型資料庫裡邊就用到了很多這種鎖機制,比如行鎖,表鎖等,讀鎖,寫鎖等,都是在做操作之前先上鎖。樂觀鎖 optim...