好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Mysql事務并發(fā)問題解決方案

Mysql事務并發(fā)問題解決方案

熱門標簽:石家莊電商外呼系統(tǒng) 信陽穩(wěn)定外呼系統(tǒng)運營商 日照旅游地圖標注 芒果電話機器人自動化 南通自動外呼系統(tǒng)軟件 湖南人工外呼系統(tǒng)多少錢 申請外呼電話線路 百度地圖圖標標注中心 廣東人工電話機器人

在開發(fā)中遇到過這樣一個問題

一個看視頻記錄,更新到100就表示看完了,后面再有請求不繼續(xù)更新了.

結(jié)果是:

導致,里面很多數(shù)據(jù)出現(xiàn)問題.

推測是以下的情況才會導致

第一條請求 事務在執(zhí)行中,還未提交(因為本地有時候比較難再現(xiàn),于是手動在程序中,第一條記錄處理的時候,sleep了幾秒,就達到這種效果了)

第二條請求 事務已經(jīng)開始執(zhí)行,這個時候查到的歷史最大值不是100,才會去進行了更新

網(wǎng)上看了一下解決方案:

悲觀鎖

直接鎖行記錄

這個我在本地測試,確實有效,一個事務開始沒結(jié)束,第二個事務一個等待,不過會導致處于阻塞狀態(tài),因為系統(tǒng)并發(fā),不敢考慮,也就是記錄下這個方式.

手動模擬:

執(zhí)行第一個事務:

-- 視頻100BEGIN;

SELECT * FROM `biz_coursestudyhistory` WHERE sid = 5777166;

UPDATE biz_coursestudyhistory set studyStatus = 100,versionNO=versionNO+1 WHERE sid = 1 AND versionNO = 0;

-- commit ; 先不執(zhí)行,先注解掉,只執(zhí)行上面的

接著執(zhí)行第二個事務:

BEGIN;
 
UPDATE biz_coursestudyhistory set studyStatus = 90,versionNO=versionNO+1 WHERE sid = 1 AND versionNO = 0;
 
SELECT * FROM `biz_coursestudyhistory` WHERE sid = 1 FOR UPDATE;
 
COMMIT;

會發(fā)現(xiàn)成功不了,一直處于等待狀態(tài).

查看鎖

確實被鎖住了,這里只要執(zhí)行第一個事務的commit ,第二個事務就會執(zhí)行.

從這里可以看出,行鎖可以直接達到理想的數(shù)據(jù)統(tǒng)一狀態(tài),一個事務修改,其他都不能操作,感覺這種比較適合銀行這種安全性的項目

樂觀鎖:

這種比較簡單,并且不會造成阻塞

方式就是加上版本號

var maxver = select max(version) from table

更新的話使用

update table set studystatus = xxx,version = version +1 where id =1 and version = maxver

寫入的話

INSERT into table (contentStudyID,courseWareID,studyStatus,studyTime,endTime)
SELECT 27047358,3163,100,333,NOW() FROM dual WHERE NOT EXISTS (SELECT 1 FROM table WHERE contentStudyID =27047358 AND
courseWareID = 3163
 )

這種方式,可以在更新或者寫入的時候,直接判斷庫里面存在的數(shù)據(jù)是否存在,如果不存在則是別其他的線程使用了.

修改為這種寫法后,使用jmeter進行多線程測試,從最開始的多條記錄更新成功,變成只有一個成功,后面的失敗.

從最開始的插入多條記錄,到后來的只能插入一條數(shù)據(jù)了

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • MySQL系列之十 MySQL事務隔離實現(xiàn)并發(fā)控制
  • 詳解MySQL多版本并發(fā)控制機制(MVCC)源碼
  • mysql的MVCC多版本并發(fā)控制的實現(xiàn)
  • MySQL高并發(fā)生成唯一訂單號的方法實現(xiàn)
  • MySQL 加鎖控制并發(fā)的方法
  • MySQL 數(shù)據(jù)庫如何解決高并發(fā)問題
  • mysql并發(fā)控制原理知識點
  • mysql多版本并發(fā)控制MVCC的實現(xiàn)
  • MySQL并發(fā)更新數(shù)據(jù)時的處理方法
  • Tomcat+Mysql高并發(fā)配置優(yōu)化講解
  • MySQL 到底是如何做到多版本并發(fā)的?

標簽:呼和浩特 沈陽 公主嶺 惠州 合肥 牡丹江 阿里 天津

巨人網(wǎng)絡通訊聲明:本文標題《Mysql事務并發(fā)問題解決方案》,本文關(guān)鍵詞  Mysql,事務,并發(fā),問題,解決方案,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Mysql事務并發(fā)問題解決方案》相關(guān)的同類信息!
  • 本頁收集關(guān)于Mysql事務并發(fā)問題解決方案的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: mm131美女图片爽爽爽| 爽?娇妻?快?高H绿帽王大牛| 精品乱lun小说| 一边吃奶一边摸一边做| 日本少妇做爰全过程毛片湛江天气| 李丽珍毛片| 乡下农村女人一级A片| 美女100%无遮挡露出| 男人j进女人屁网站免费| 男男下药顶撞喘嗯啊H漫画| 亚洲午夜精品A片久久www古装| 欧美一级夜夜爽www| 我的娇妻h| 免费高潮A片一级毛片微信| 双性少爷H奶大器粗H漫画| 双男主动漫开最猛的车剧| 乳欲| 亚洲国产欧美另类| 老子午夜伦不卡电影院| 插插插小说| 女男搞基| 欧美一区在线播放| 范冰冰裸被?高清网站| 老司机午夜免费精品视频| 当男人恋爱时韩剧高清在线看| 小四郎在线AV观看| 日本午夜免费福利视频 | 为啥女的做完一次下面特别干| 亚洲18卡通动漫在线播放| 性·爱大师无删减版| 嗯~用力啊~嗯~c我| 欧美人与动zooz| 我的胸被揉得好爽| 放荡小婬妇H肉辣文糙汉| 最近中文字幕mv在线视频2019| 日本欧美一区| 国产成人一区二区三区视频免费| 99久久久国产精品免费上海一级 | 色情少妇爆乳挤奶视频| 辣文h肉| 挺进武林美妇后菊|