婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > mysql報錯:Deadlock found when trying to get lock; try restarting transaction的解決方法

mysql報錯:Deadlock found when trying to get lock; try restarting transaction的解決方法

熱門標簽:沈陽電銷外呼系統(tǒng)原理是什么 上海智能外呼系統(tǒng)代理商 ps制作地圖標注gif 成都優(yōu)派外呼系統(tǒng) 電子地圖標注電話 寧波企業(yè)外呼系統(tǒng)收費 聊城智能外呼系統(tǒng)運營商 地圖標注人員兼職 扎樣申請400電話

發(fā)現(xiàn)問題

最近在補以前數(shù)據(jù)的時候程序突然報如下錯誤:

[2017-02-10 13:12:06.678] [INFO] mysqlLog - update tbl_playerdata_error: { [Error: ER_LOCK_DEADLOCK: Deadlock found when trying to get lock; try restarting transaction]
 code: 'ER_LOCK_DEADLOCK',
 errno: 1213,
 sqlState: '40001',
 index: 0 }

一看就是mysql出現(xiàn)了死鎖問題,其實上面跑的程序在測試服跑了好久都沒什么問題,為什么在正式服上會出現(xiàn)mysql的死鎖問題呢,第一反應是不是數(shù)據(jù)量太大(3百多萬條),可是也不可能啊,再說死鎖和這些有什么雞毛的關系,看來要好好解決下了。

問題分析

我的分析是:由于現(xiàn)在處理的是正式服的數(shù)據(jù),而正式服還有許多用戶在操作,應該是在用戶查詢,或者是其他操作的時候,和我這邊的數(shù)據(jù)更新產(chǎn)生了死鎖(首先說明使用的是:InnoDB存儲引擎。由于用戶那邊的查詢或者其他操作鎖定了我需要的資源,而我這邊更新也鎖定了用戶操作的一部分資源,兩邊都等著對方釋放資源,從而導致死鎖)。

解決方法

知道錯誤code之后,先來查看mysql的說明,關于上面的 Error: 1213 SQLSTATE: 40001,參見:Server Error Codes and Messages

Message: Deadlock found when trying to get lock; try restarting transaction

InnoDB reports this error when a transaction encounters a deadlock and is automatically rolled back so that your application can take corrective action. To recover from this error, run all the operations in this transaction again. A deadlock occurs when requests for locks arrive in inconsistent order between transactions. The transaction that was rolled back released all its locks, and the other transaction can now get all the locks it requested. Thus, when you re-run the transaction that was rolled back, it might have to wait for other transactions to complete, but typically the deadlock does not recur. If you encounter frequent deadlocks, make the sequence of locking operations (LOCK TABLES, SELECT ... FOR UPDATE, and so on) consistent between the different transactions or applications that experience the issue. See Section 14.8.5, “Deadlocks in InnoDB” for details.

上面有兩句:

To recover from this error, run all the operations in this transaction againbr>br>If you encounter frequent deadlocks, make the sequence of locking operations (code class="literal">LOCK TABLES/code>, code class="literal">SELECT ... FOR UPDATE/code>, and so on) br>consistent between the different transactions or applications that experience the issue 

這兩句也就道出了處理死鎖的方法了,我就是在死鎖錯誤發(fā)生的時候,使用定時器再重新做一次更新操作,這樣就避免了上面出現(xiàn)的問題。

另外,參考了stack overflow上面一個回答:http://stackoverflow.com/questions/2332768/how-to-avoid-mysql-deadlock-found-when-trying-to-get-lock-try-restarting-trans

One easy trick that can help with most deadlocks is sorting the operations in a specific order.

You get a deadlock when two transactions are trying to lock two locks at opposite orders, ie:

connection 1: locks key(1), locks key(2);
connection 2: locks key(2), locks key(1);
If both run at the same time, connection 1 will lock key(1), connection 2 will lock key(2) and each connection will wait for the other to release the key -> deadlock.

Now, if you changed your queries such that the connections would lock the keys at the same order, ie:

connection 1: locks key(1), locks key(2);
connection 2: locks key(1), locks key(2);
it will be impossible to get a deadlock.

So this is what I suggest:

Make sure you have no other queries that lock access more than one key at a time except for the delete statement. if you do (and I suspect you do), order their WHERE in (k1,k2,..kn) in ascending order.
Fix your delete statement to work in ascending order:
Change

DELETE FROM onlineusers WHERE datetime = now() - INTERVAL 900 SECOND
To

DELETE FROM onlineusers WHERE id IN (SELECT id FROM onlineusers
 WHERE datetime = now() - INTERVAL 900 SECOND order by id) u;
Another thing to keep in mind is that mysql documentation suggest that in case of a deadlock the client should retry automatically. you can add this logic to your client code. (Say, 3 retries on this particular error before giving up).

參考:http://blog.sina.com.cn/s/blog_4acbd39c01014gsq.html

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • c#中SqlTransaction——事務詳解
  • mysql Non-Transactional Database Only(只支持MyISAM)
  • 淺談Transact-SQL
  • MySQL數(shù)據(jù)庫事務隔離級別介紹(Transaction Isolation Level)
  • Transact_SQL 小手冊
  • Sql Server數(shù)據(jù)庫常用Transact-SQL腳本(推薦)

標簽:朔州 三明 林芝 AXB 汕頭 咸寧 宿州 內江

巨人網(wǎng)絡通訊聲明:本文標題《mysql報錯:Deadlock found when trying to get lock; try restarting transaction的解決方法》,本文關鍵詞  mysql,報錯,Deadlock,found,when,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mysql報錯:Deadlock found when trying to get lock; try restarting transaction的解決方法》相關的同類信息!
  • 本頁收集關于mysql報錯:Deadlock found when trying to get lock; try restarting transaction的解決方法的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美日韩精品欧美日韩精品| 日韩精品中文字幕一区二区三区 | 7777精品伊人久久久大香线蕉最新版 | 欧美日韩黄色一区二区| 欧美另类z0zxhd电影| 亚洲一区免费视频| 在线观看日韩av先锋影音电影院| 日韩欧美在线影院| 国内国产精品久久| 日韩三级.com| 国产精品欧美综合在线| 国产一区二区导航在线播放| 制服.丝袜.亚洲.中文.综合| 亚洲猫色日本管| 久久成人综合网| 在线这里只有精品| 日韩欧美精品在线| 久热成人在线视频| 亚洲视频精选在线| 国产经典欧美精品| 亚洲欧美日韩国产另类专区| 99视频热这里只有精品免费| 欧美大胆一级视频| 精品无人区卡一卡二卡三乱码免费卡| 国产亚洲精品aa| 国产成人自拍高清视频在线免费播放| 欧美一区二区三区成人| 日韩成人一级片| 欧美tk丨vk视频| 福利电影一区二区三区| 8x福利精品第一导航| 亚洲精品视频在线观看免费| 欧美日韩精品一区二区三区蜜桃| 亚洲一区二区成人在线观看| 久久久久久久综合色一本| 92精品国产成人观看免费| 26uuu国产日韩综合| 激情综合五月天| 欧美一区二区三区精品| 九色综合国产一区二区三区| 亚洲福利国产精品| 91福利资源站| 久久精品国产77777蜜臀| 99re这里只有精品6| 日韩经典一区二区| 在线观看免费亚洲| 亚洲美女免费视频| 国产成人精品网址| 一区二区三区成人| 不卡在线视频中文字幕| 欧美日韩激情一区| 最新中文字幕一区二区三区| 一本大道av伊人久久综合| 一二三区精品福利视频| 欧美精品一区二区高清在线观看| 国产剧情一区二区| 亚洲成人av福利| 色激情天天射综合网| 中文字幕一区二区日韩精品绯色| 欧美日韩国产免费一区二区| 国产成人免费9x9x人网站视频| 亚洲欧美日韩中文播放| 欧美一区二区视频在线观看| 日本成人在线看| 亚洲综合色噜噜狠狠| 一区二区激情视频| ●精品国产综合乱码久久久久| 欧美一区二区三区四区久久| 麻豆成人91精品二区三区| 日韩精品一区二区三区三区免费| 国产精品一级黄| 久久精品久久99精品久久| 中文字幕在线播放不卡一区| 国产欧美日韩视频在线观看| 欧美日韩不卡一区二区| 国产suv一区二区三区88区| 久久国产成人午夜av影院| 性欧美大战久久久久久久久| 一级日本不卡的影视| 欧美日韩国产小视频在线观看| 精品亚洲欧美一区| 亚洲一区二区黄色| 国产精品久久久久9999吃药| 在线观看日韩一区| 国产mv日韩mv欧美| 理论电影国产精品| 一区二区三区欧美视频| 国产午夜精品久久久久久久| 欧美精品久久99久久在免费线| 日本韩国精品在线| 欧美色图天堂网| 欧美视频你懂的| 色婷婷国产精品| 日本精品免费观看高清观看| 国产不卡一区视频| 国产视频一区二区三区在线观看 | 亚洲午夜精品网| 欧美性色黄大片| 欧美一区二区三区四区高清 | 制服视频三区第一页精品| 欧美放荡的少妇| 制服.丝袜.亚洲.中文.综合| 国产精品天天摸av网| 亚洲香蕉伊在人在线观| 亚洲激情第一区| 2023国产精华国产精品| 久久精品视频在线看| 日韩你懂的电影在线观看| 国产日韩综合av| 亚洲美女免费视频| 黄一区二区三区| 国产成人精品一区二区三区四区| 成人av手机在线观看| 欧美日韩一级片在线观看| 亚洲国产sm捆绑调教视频| 在线观看av一区二区| 欧美久久久久久久久久| 91麻豆精品国产自产在线| 欧美精品一区二区三区蜜桃视频 | 视频一区二区三区入口| 国产一二精品视频| 成人av在线资源| 日韩女优电影在线观看| 欧美网站一区二区| 欧美精品一区二区三| 亚洲一级二级三级在线免费观看| 国产精品一区在线观看乱码| 欧美疯狂做受xxxx富婆| 国产精品视频一二三| 亚洲欧美日韩在线| 欧美艳星brazzers| 亚洲乱码日产精品bd| 久久精品国产99| 色综合久久久久网| 久久精品人人做| 日韩一级二级三级| 亚洲蜜臀av乱码久久精品蜜桃| 国产精品资源在线| 日韩区在线观看| 亚洲综合另类小说| 日本午夜一区二区| 丰满白嫩尤物一区二区| 国产亚洲va综合人人澡精品| 水蜜桃久久夜色精品一区的特点| 久久99精品一区二区三区三区| 成人深夜在线观看| 日韩你懂的电影在线观看| 日本不卡视频在线观看| 欧美性大战xxxxx久久久| 欧美激情中文不卡| 日韩一区在线免费观看| 久久se这里有精品| 日本高清成人免费播放| 国产精品天天摸av网| 成人性生交大片免费看中文| 国产精品看片你懂得| 在线精品视频免费观看| 亚洲综合自拍偷拍| 欧美日韩亚洲综合一区二区三区| 久久嫩草精品久久久精品| 欧美一区二区啪啪| 日韩免费观看高清完整版 | av在线不卡电影| 欧美无乱码久久久免费午夜一区| 91精品国产综合久久精品图片| 日韩一区欧美小说| 久久国产精品99久久人人澡| 在线日韩国产精品| 久久久综合激的五月天| 亚洲丶国产丶欧美一区二区三区| 欧美午夜免费电影| 制服丝袜中文字幕一区| 中文字幕视频一区| 成人动漫一区二区三区| 国产精品丝袜在线| 美女精品一区二区| 99久久精品免费| 中文字幕精品—区二区四季| 日韩精品亚洲专区| 欧美日韩免费电影| 亚洲国产综合视频在线观看| 91无套直看片红桃| 一区二区三区四区亚洲| 色综合久久综合网97色综合| 夜夜揉揉日日人人青青一国产精品| 色综合激情久久| 欧美不卡在线视频| 性欧美大战久久久久久久久| www.日本不卡| 日韩毛片在线免费观看| 专区另类欧美日韩| 免费观看在线综合| 欧美亚洲综合网| 91精品中文字幕一区二区三区| 久久精品国产免费| 欧美军同video69gay| 人人爽香蕉精品| 久久久五月婷婷| 粉嫩久久99精品久久久久久夜| 欧美美女bb生活片|