樂觀鎖、悲觀鎖簡單分析,回憶舊(新)知識...

今天被人問了下樂觀鎖和悲觀鎖,忽然在腦子裏好模糊,但又感受之前很熟悉的東西居然忘得這麼幹淨。因此惡補加記錄一下。數據庫

樂觀鎖和悲觀鎖是對於數據庫併發狀況下產生的兩個對立的概念,因此首先確認一點 併發!併發!才存在這兩個概念,他們是對併發數據庫操做不一樣的處理方式。併發

樂觀鎖:樂觀的認爲不會發生併發衝突,依賴新增字段(version,你能夠起一個其它的名字)來檢驗數據的合法,舉例:查詢數據 後,對version+1操做,而後修改記錄 where 條件 version(當前)小於傳遞回來的值才修改,不然放棄修改。性能

悲觀鎖:悲觀的認爲全部的操做都會發生併發衝突,所以只能以數據庫自身的鎖才能實現,對資源的強佔有。舉例:在對任意記錄進行修改前,先嚐試爲該記錄加上排他鎖(exclusive locking)。資源

從上述簡介:能看出,很明顯的區別,能夠根據本身的頁面進行選擇,但還有一點必須明白,悲觀鎖會致使性能大幅度降低。io

qq技術交流羣:208779755
我的公衆號:海濤聊技術技術

相關文章
相關標籤/搜索