[Database][MySQL] 樂觀鎖 & 悲觀鎖指南 – OCC & PCC (FOR SHARE|FOR UPDATE)
Intro Database 中,鎖的實現分類上目前可分為兩種: 樂觀鎖(Optimistic Locking) 悲觀鎖(Pessimistic Locking) 樂觀鎖 – OCC 樂觀並行控制 – Optimistic Concurrency Control,縮寫「OCC」 不利用內建鎖機制,而是利用應用層邏輯解決衝突 可透過讀取資料時分派一個版本或時間戳,通過校驗後寫入否則中斷(實作上可利用寫入連帶驗證版本達成) 適合交易之間資料競爭(data race)概率較小的應用情境 MySQL 實現範例 CAS (Compare And Swap) — 確保「我現在改的」是我剛才「看到的」那一版 UPDATE page SET content = '第六版…', version = version + 1 WHERE id […]