中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Laravel事務中使用悲觀鎖的示例

發布時間:2021-01-19 10:18:35 來源:億速云 閱讀:220 作者:小新 欄目:編程語言

這篇文章主要介紹了Laravel事務中使用悲觀鎖的示例,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

                                                       laravel 提供了方便快捷的數據庫事務使用方式,在使用中遇到過幾個容易混淆和被誤導的地方,這里做個記錄,希望哪里寫的不對的地方各位大神指點一下

laravel 事務分為手動方式和自動方式,但如果我們在使用 laravel 提供的 sharedLock 或者 lockForUpdate 鎖表的方式,為了避免不必要的麻煩和錯誤,建議最好使用手動提交事務來處理,如下圖:

Laravel事務中使用悲觀鎖的示例

下面來說說 sharedLock (共享鎖) 和 lockForUpdate (悲觀鎖) 這兩個在使用上的區別和影響

sharedLock (共享鎖)

sharedLock 使用時等同于 SQL 語句 *select from transaction_test where type = 1 lock in share mode;**

在事務中使用 sharedLock 時才會生效,會把數據所在行進行鎖定,此時被鎖定的數據,不允許被其他操作修改,但是被鎖定的數據,對查詢操作沒有影響,無論是普通查詢還是事務中的查詢操作,都不會受到影響。被鎖定的數據,知道事務被提交或者回滾之后,才會釋放.

lockForUpdate (悲觀鎖)

lockForUpdate 使用時等同于 SQL 語句 *select from transaction_test where type = 1 for update;**

lockForUpdate 只有在事務中才會生效,使用 lockForUpdate 時數據所在行被鎖定,此刻其他事務中的鎖表操作會等待當前事務提交才會執行,但是對于非鎖表和普通的查詢操作并沒有限制,有影響的只是你在事務中同樣執行的鎖表操作.

總之,無論是共享鎖還是悲觀鎖,受影響的只是事務中執行鎖表的操作,對于普通的查詢操作,和事務中的非鎖表操作沒有影響,

同時需要注意的是,無論悲觀鎖還是共享鎖當 sql 語句涉及到索引 , 并用索引作為查詢或判斷的依據時,那么 mysql 會用行級鎖鎖定所要修改的行,否則會使用表鎖鎖住整張表,因此在使用時一定要注意使用索引,否則會導致高的并發問題;

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Laravel事務中使用悲觀鎖的示例”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鸡东县| 中阳县| 安阳市| 鞍山市| SHOW| 万盛区| 苏州市| 股票| 南宁市| 公主岭市| 清涧县| 平阳县| 朝阳区| 九江县| 瑞丽市| 台北市| 南丰县| 洪湖市| 麻栗坡县| 溧阳市| 九江县| 遵义市| 疏勒县| 廊坊市| 佛坪县| 白水县| 五华县| 龙州县| 太和县| 徐州市| 阿拉善左旗| 瓦房店市| 呼图壁县| 阿克陶县| 民丰县| 六枝特区| 固始县| 盐山县| 城口县| 化德县| 中方县|