您好,登錄后才能下訂單哦!
本文主要給大家介紹MySQL鎖機制講義,其所涉及的東西,從理論知識來獲悉,有很多書籍、文獻可供大家參考,從現實意義角度出發,億速云累計多年的實踐經驗可分享給大家。
MySQL 鎖機制
1、MySIAM 存儲引擎
支持的類型是表鎖,表共享讀鎖(Table Read Lock),表獨占寫鎖(Table Write Lock)
樂觀鎖
一、在對數據庫中進行操作時,認為肯定會有其他的操作會跟我們的修改產生沖突,所以每次操作都會上一個鎖。
共享鎖(S):SELECT * FROM table_name WHERE ... LOCK IN SHARE MODE
。
排他鎖(X):SELECT * FROM table_name WHERE ... FOR UPDATE
注意事項:
1、是根據索引來對行進行鎖定的,如果用的是非索引字段則會將表鎖住。
2、行/表 被鎖定后,其他腳本可以正常讀取記錄,但是如果修改記錄的話,則會被阻塞,直到排他鎖被 commit
3、對于UPDATE、DELETE和INSERT語句,InnoDB會自動給涉及數據集加排他鎖(X)
樂觀鎖:認為操作不會有數據沖突,數據庫是不支持的,需要我們用代碼邏輯實現,一般是通過數據庫增加一個version字段來進行控制
1、表中增加一個version字段,每次對數據進行更新后,進行值+1操作。然后通過之前查出來的version值,如果一致則完成,不一致則返回錯誤
看了以上MySQL鎖機制講義介紹,希望能給大家在實際運用中帶來一定的幫助。本文由于篇幅有限,難免會有不足和需要補充的地方,大家可以繼續關注億速云行業資訊板塊,會定期給大家更新行業新聞和知識,如有需要更加專業的解答,可在官網聯系我們的24小時售前售后,隨時幫您解答問題的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。