久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mysql中的for update怎么用

176次閱讀
沒有評論

共計 1289 個字符,預(yù)計需要花費 4 分鐘才能閱讀完成。

這篇文章主要介紹“mysql 中的 for update 怎么用”的相關(guān)知識,丸趣 TV 小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“mysql 中的 for update 怎么用”文章能幫助大家解決問題。

mysql 中 for update 的用法是“select * from table where…for update”;用 for update 可以在查詢的時候為行添加排它鎖,當一個事務(wù)操作未完成的時候,其他事務(wù)可讀取但是不能寫入或者更新。

本教程操作環(huán)境:windows10 系統(tǒng)、mysql8.0.22 版本、Dell G3 電腦。

mysql 中 for update 的用法是什么

1.for update 的使用場景

如果遇到存在高并發(fā)并且對于數(shù)據(jù)的準確性很有要求的場景,是需要了解和使用 for update 的。

for update 的作用是在查詢的時候為行加上排它鎖,當一個事務(wù)的操作未完成時候,其他事務(wù)可以讀取但是不能寫入或更新。

比如涉及到金錢、庫存等。一般這些操作都是很長一串并且是開啟事務(wù)的。如果庫存剛開始讀的時候是 1,而立馬另一個進程進行了 update 將庫存更新為 0 了,而事務(wù)還沒有結(jié)束,會將錯的數(shù)據(jù)一直執(zhí)行下去,就會有問題。所以需要 for upate 進行數(shù)據(jù)加鎖防止高并發(fā)時候數(shù)據(jù)出錯。

記住一個原則:一鎖二判三更新

2.for update 如何使用

使用姿勢:

select * from table where xxx for update

3.for update 的鎖表

InnoDB 默認是行級別的鎖,當有明確指定的主鍵時候,是行級鎖。否則是表級別。

例子: 假設(shè)表 foods,存在有 id 跟 name、status 三個字段,id 是主鍵,status 有索引。

例 1: (明確指定主鍵,并且有此記錄,行級鎖)

SELECT * FROM foods WHERE id=1 FOR UPDATE;
SELECT * FROM foods WHERE id=1 and name=‘碼農(nóng)編程進階筆記’ FOR UPDATE;

例 2: (明確指定主鍵 / 索引,若查無此記錄,無鎖)

SELECT * FROM foods WHERE id=-1 FOR UPDATE;

例 3: (無主鍵 / 索引,表級鎖)

SELECT * FROM foods WHERE name=‘碼農(nóng)編程進階筆記’FOR UPDATE;

例 4: (主鍵 / 索引不明確,表級鎖)

SELECT * FROM foods WHERE id‘3’ FOR UPDATE;
SELECT * FROM foods WHERE id LIKE ‘3’ FOR UPDATE;

4.for update 的注意點

1.for update 僅適用于 InnoDB,并且必須開啟事務(wù),在 begin 與 commit 之間才生效。

2. 要測試 for update 的鎖表情況,可以利用 MySQL 的 Command Mode,開啟二個視窗來做測試。

關(guān)于“mysql 中的 for update 怎么用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注丸趣 TV 行業(yè)資訊頻道,丸趣 TV 小編每天都會為大家更新不同的知識點。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-13發(fā)表,共計1289字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 高密市| 屏东县| 石河子市| 甘泉县| 兴海县| 阳高县| 泗洪县| 纳雍县| 黄山市| 肥东县| 阿克苏市| 贺州市| 静乐县| 康乐县| 桂林市| 绥芬河市| 花莲县| 罗源县| 德江县| 新巴尔虎左旗| 翁源县| 砚山县| 永和县| 隆安县| 德江县| 安顺市| 嘉鱼县| 大竹县| 甘谷县| 高台县| 惠东县| 田阳县| 临安市| 三河市| 永宁县| 贵定县| 泗洪县| 张掖市| 星子县| 轮台县| 团风县|