5種mysql中Sequence實現,基於鎖,高並發,唯一性等場景


創建表用於存儲當前序列值

 

第一種實現,不加鎖,高並發下可能返回重復值

 

第二種實現,悲觀鎖,高並發下能保證返回值唯一,但是可能導致性能急劇下降

 

第三種實現,樂觀鎖,最多嘗試三次(應用需要判斷序號是否為0,為0表示獲取序號失敗)

 

第四種實現,通過多條記錄分散並發量,減少競爭

--一個序列采用多條記錄,每次獲取序號的時候隨機挑選一條記錄進行更新(使用排它鎖,多條記錄能有效減少鎖競爭)--比如使用10條記錄,每條記錄初始值1-10,增長步長為10

 

第五種實現,終極實現,不加鎖,能保證返回值唯一,且不影響性能


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM