您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關mysql實現悲觀鎖的方法,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
簡介:
悲觀鎖,正如其名,具有強烈的獨占和排他特性。它指的是對數據被外界(包括本系統當前的其他事務,以及來自外部系統的事務處理)修改持保守態度,因此,在整個數據處理過程中,將數據處于鎖定狀態。悲觀鎖的實現,往往依靠數據庫提供的鎖機制(也只有數據庫層提供的鎖機制才能真正保證數據訪問的排他性,否則,即使在本系統中實現了加鎖機制,也無法保證外部系統不會修改數據)。
mysql悲觀鎖的方法:
1、開始事務
begin;/begin work;/start transaction; (三者選一就可以)
2、查詢出商品信息
select status from table where id=1 for update;
3、根據商品信息生成訂單
insert into table111 (id,goods_id) values (null,1);
4、修改商品status為2
update table set status=2 where id=1;
5、提交事務
commit;/commit work; (任選一種釋放鎖)
總結:
1、實現悲觀鎖利用select ... for update加鎖, 操作完成后使用commit來釋放鎖;
2、innodb引擎時, 默認行級鎖, 當有明確字段時會鎖一行, 如無查詢條件或條件;
字段不明確時, 會鎖整個表,條件為范圍時會鎖整個表;
3、查不到數據時, 則不會鎖表。
上述就是小編為大家分享的mysql實現悲觀鎖的方法了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。