校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

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

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

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

發現問題

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

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

問題分析

我的分析是:由于現在處理的是正式服的數據,而正式服還有許多用戶在操作,應該是在用戶查詢,或者是其他操作的時候,和我這邊的數據更新產生了死鎖(首先說明使用的是: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 

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

另外,參考了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數據庫事務隔離級別介紹(Transaction Isolation Level)
  • Transact_SQL 小手冊
  • Sql Server數據庫常用Transact-SQL腳本(推薦)

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

巨人網絡通訊聲明:本文標題《mysql報錯:Deadlock found when trying to get lock; try restarting transaction的解決方法》,本文關鍵詞  mysql,報錯,Deadlock,found,when,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mysql報錯:Deadlock found when trying to get lock; try restarting transaction的解決方法》相關的同類信息!
  • 本頁收集關于mysql報錯:Deadlock found when trying to get lock; try restarting transaction的解決方法的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    久久久99精品久久| 亚洲国产日韩a在线播放性色| 国产乱码精品一区二区三 | 中文字幕欧美区| 欧美激情一区二区三区在线| 欧美色窝79yyyycom| 久久伊99综合婷婷久久伊| 亚洲资源中文字幕| 国产专区欧美精品| 91小视频在线观看| 欧美不卡视频一区| 久久精品国产亚洲5555| 精品国产不卡一区二区三区| 色狠狠桃花综合| 国产精品123区| 青青草伊人久久| 亚洲国产色一区| 日韩欧美自拍偷拍| 精品欧美乱码久久久久久1区2区 | 日韩欧美不卡在线观看视频| 99r国产精品| 国产宾馆实践打屁股91| 国产一区二区在线视频| 日韩一区二区不卡| 欧美激情一区不卡| 久久九九久精品国产免费直播| 欧美日韩免费观看一区三区| 日本高清成人免费播放| 99久久精品免费看| 在线免费观看日本欧美| 日韩视频免费观看高清完整版| 欧美中文字幕一区二区三区| 99视频有精品| 欧美日韩一区二区在线观看| 91久久久免费一区二区| 久久久噜噜噜久久中文字幕色伊伊 | 韩国女主播一区| 亚洲午夜久久久久久久久久久| 中文字幕佐山爱一区二区免费| 中文字幕视频一区| 免费观看在线色综合| 另类的小说在线视频另类成人小视频在线| 日韩精品免费视频人成| 日韩福利电影在线| 欧美日韩精品三区| 亚洲美女屁股眼交| 亚洲一级二级在线| 国产精品77777| 91蝌蚪porny| 中文字幕一区视频| 国产91丝袜在线播放| 欧美三区在线观看| 最近中文字幕一区二区三区| 一区二区视频在线| 成人avav在线| 国产精品久久久久天堂| 久久精品72免费观看| 91麻豆精品国产91久久久资源速度| 国产偷国产偷精品高清尤物 | 国产午夜三级一区二区三| 国产乱一区二区| 久久这里都是精品| 99久久精品国产观看| 亚洲一区二区视频在线| 日韩精品一区二区三区视频| 成人免费视频视频| 亚洲v中文字幕| 欧美亚洲免费在线一区| 成人三级伦理片| 美女任你摸久久| 一区二区三区在线视频观看| 日韩一区二区精品葵司在线| 色婷婷久久久亚洲一区二区三区| 一区二区三区欧美亚洲| 亚洲激情中文1区| 久久精品视频在线看| 欧美群妇大交群的观看方式| 国内精品不卡在线| 亚洲一区二区三区中文字幕在线| 久久综合九色综合97_久久久 | 婷婷久久综合九色综合伊人色| 日韩一级视频免费观看在线| 成人av网站免费观看| 视频一区在线播放| 婷婷久久综合九色综合绿巨人| 亚洲国产高清aⅴ视频| 日韩一区二区影院| 91精品视频网| 欧美日韩一区二区三区视频 | 亚洲男人天堂av网| 日本一区二区免费在线| ●精品国产综合乱码久久久久| 国产精品久久影院| 亚洲精品中文在线影院| 一区二区三区在线播放| 337p粉嫩大胆色噜噜噜噜亚洲| 国产日产欧美一区二区视频| 日韩精品中文字幕在线一区| 91精品国产美女浴室洗澡无遮挡| av在线不卡电影| 日韩欧美一二三四区| 91麻豆精品91久久久久久清纯| 欧美亚洲国产一区在线观看网站| 99麻豆久久久国产精品免费| 欧美日韩另类国产亚洲欧美一级| 在线播放中文一区| 2023国产精品| 一区二区免费看| 久久精品噜噜噜成人88aⅴ| 91一区二区三区在线观看| 4438x成人网最大色成网站| 久久免费国产精品| 亚洲精品免费在线播放| 国产成人精品一区二| 欧美性高清videossexo| 欧美一区二区高清| 久久久久成人黄色影片| 日韩黄色小视频| 欧美亚洲动漫另类| 亚洲同性gay激情无套| 国产在线精品国自产拍免费| 欧美日韩免费视频| 自拍偷拍亚洲欧美日韩| 美女网站视频久久| 欧美视频完全免费看| 中文字幕色av一区二区三区| 国产精品综合在线视频| 欧美一区二区网站| 伊人婷婷欧美激情| 99久久精品免费看国产免费软件| 精品国产伦一区二区三区免费| 一区二区三区加勒比av| 色屁屁一区二区| 五月天一区二区| 精品视频在线看| 性做久久久久久免费观看欧美| 风间由美性色一区二区三区| 国产拍揄自揄精品视频麻豆| 视频精品一区二区| 久久久亚洲精品石原莉奈| 久久se这里有精品| 久久久久久久久伊人| 精品综合久久久久久8888| 日韩欧美123| 97精品视频在线观看自产线路二| 亚洲精品少妇30p| 亚洲精品一区二区在线观看| 狠狠色伊人亚洲综合成人| 亚洲欧美电影一区二区| 欧美日韩一区二区不卡| 免费在线成人网| 亚洲欧洲精品一区二区精品久久久| 一本色道亚洲精品aⅴ| 精品亚洲国内自在自线福利| 国产日韩欧美一区二区三区乱码 | 一区二区免费看| 精品欧美一区二区三区精品久久 | 国产一区二区三区视频在线播放| 久久久久综合网| 91久久一区二区| 国产在线精品一区在线观看麻豆| 91免费精品国自产拍在线不卡| 一区二区三区日韩精品| 久久影院视频免费| 欧美精品电影在线播放| 91蜜桃在线免费视频| 懂色一区二区三区免费观看| 夜夜爽夜夜爽精品视频| 国产精品国产自产拍在线| 久久久国产午夜精品| 日韩欧美国产三级电影视频| 欧美色偷偷大香| 欧美日本免费一区二区三区| 91麻豆精品在线观看| 99久久精品一区二区| 色综合av在线| 欧美日韩在线观看一区二区| 欧美三级视频在线| 精品国产免费视频| 欧美日韩亚洲综合一区| 日本欧美一区二区在线观看| 国产精品美女一区二区三区 | 国产精品人妖ts系列视频| 精品免费国产二区三区| 日韩一区二区在线免费观看| 欧美日韩午夜在线视频| 日韩欧美亚洲另类制服综合在线| 精品国精品自拍自在线| 久久天堂av综合合色蜜桃网| 精品久久久久一区二区国产| 亚洲欧美日韩在线| 极品少妇xxxx偷拍精品少妇| 成人18精品视频| 欧美一区二区三区四区久久| 国产拍揄自揄精品视频麻豆| 一区二区三区在线看| 国产九色sp调教91| 97se亚洲国产综合自在线不卡| 日韩亚洲欧美综合| 亚洲黄色录像片|