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

主頁 > 知識庫 > 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久久免费视频.com| 韩国三级在线一区| 日韩av电影免费观看高清完整版 | 色欧美日韩亚洲| 国产激情91久久精品导航 | 亚洲卡通动漫在线| 国产午夜亚洲精品不卡| 欧美一区二区三区在线| 91麻豆swag| www.视频一区| 成人小视频免费观看| 精品在线观看免费| 日本系列欧美系列| 午夜在线成人av| 亚洲综合一区二区精品导航| 国产精品不卡一区| 国产欧美精品国产国产专区| 精品国产伦理网| 日韩美一区二区三区| 91精品国产91久久久久久最新毛片| 一本大道综合伊人精品热热| 99精品视频一区| av中文字幕在线不卡| 99久免费精品视频在线观看 | 欧美一级日韩免费不卡| 欧美日韩不卡在线| 欧美色涩在线第一页| 一本到三区不卡视频| 91麻豆免费看片| 色吊一区二区三区| 91精品福利视频| 在线免费观看不卡av| 在线亚洲高清视频| 欧美午夜在线观看| 精品视频一区二区三区免费| 欧美三级资源在线| 7777精品伊人久久久大香线蕉完整版 | 久久精品99国产国产精| 麻豆精品一区二区| 久久99国产精品久久99果冻传媒| 日本不卡视频在线观看| 精品一区二区三区视频| 久久精品国产一区二区| 国产精品一区二区黑丝 | 91麻豆精品国产91久久久更新时间 | 555www色欧美视频| 日韩美女天天操| 久久精子c满五个校花| 国产精品美女视频| 亚洲综合在线观看视频| 婷婷国产v国产偷v亚洲高清| 蜜桃一区二区三区在线观看| 国产福利一区二区三区| av不卡免费在线观看| 色丁香久综合在线久综合在线观看| 欧美性色黄大片| 日韩亚洲欧美成人一区| 国产情人综合久久777777| 亚洲视频综合在线| 日韩国产欧美视频| 国产精品香蕉一区二区三区| 91麻豆免费看| 精品久久免费看| 中文字幕在线观看一区二区| 亚洲国产欧美日韩另类综合| 久久99精品国产.久久久久| 成人精品视频一区二区三区| 日本电影欧美片| 欧美成人精品1314www| 国产精品美女一区二区| 天堂在线一区二区| 国产精品一区不卡| 成人美女在线观看| 久久精品人人做| 久久91精品久久久久久秒播| 国产一区二区在线视频| 色婷婷国产精品久久包臀| 欧美一二三四区在线| 国产精品久久免费看| 丝袜诱惑亚洲看片| 成人免费看黄yyy456| 欧美日韩亚洲国产综合| 国产嫩草影院久久久久| 日韩国产欧美三级| 99精品偷自拍| 日韩免费看的电影| 一区二区成人在线观看| 国产美女一区二区三区| 欧美日韩亚洲高清一区二区| 国产精品三级视频| 美国av一区二区| 91久久香蕉国产日韩欧美9色| 久久日一线二线三线suv| 亚洲国产日韩综合久久精品| 丁香桃色午夜亚洲一区二区三区| 欧美精品乱码久久久久久按摩| 国产精品人成在线观看免费| 久久国产福利国产秒拍| 欧美性受xxxx| 亚洲女与黑人做爰| 高清在线成人网| 26uuu色噜噜精品一区| 午夜精品免费在线| 色94色欧美sute亚洲线路二| 中文字幕欧美国产| 精品一区二区三区在线观看| 欧美日本一道本| 一区二区三区四区视频精品免费 | 久久综合999| 秋霞午夜av一区二区三区| 欧洲人成人精品| 亚洲视频免费观看| 不卡av在线网| 日本一区二区视频在线观看| 精品一区二区在线播放| 日韩精品中文字幕一区二区三区 | 亚洲国产裸拍裸体视频在线观看乱了| 成人的网站免费观看| 国产欧美一区二区精品婷婷| 国产剧情一区二区| 久久久蜜桃精品| 韩国成人精品a∨在线观看| 欧美tk丨vk视频| 精品一区二区三区日韩| 国产一区二区精品久久99| 精品日产卡一卡二卡麻豆| 国产ts人妖一区二区| 国产精品人成在线观看免费| 欧美色视频一区| 九九国产精品视频| 中文成人av在线| 欧美日韩大陆一区二区| 韩国v欧美v亚洲v日本v| 亚洲色图19p| 日韩精品一区二区三区中文精品| 国产精品18久久久久久久久| 日韩成人免费看| 成人天堂资源www在线| 欧美经典一区二区| 9色porny自拍视频一区二区| 亚洲精品视频自拍| 欧美日韩国产美女| 美女精品一区二区| 欧美精品一区二区蜜臀亚洲| 国产成人精品影院| 亚洲人亚洲人成电影网站色| 色综合久久中文字幕| 亚洲一区二区三区四区中文字幕| 欧美日高清视频| 精品在线一区二区三区| 国产清纯白嫩初高生在线观看91 | 色婷婷综合视频在线观看| 亚洲一卡二卡三卡四卡五卡| 欧美一区二区三区男人的天堂| 狠狠色狠狠色合久久伊人| 欧美激情一区二区三区四区 | 91精品一区二区三区久久久久久| 久久黄色级2电影| 国产精品视频麻豆| 欧美亚洲一区二区在线| 九色综合国产一区二区三区| 国产欧美日韩视频一区二区 | 中文字幕第一区二区| 91久久精品网| 捆绑调教一区二区三区| 国产精品欧美经典| 在线不卡免费欧美| 国产**成人网毛片九色| 亚洲永久免费av| 男人操女人的视频在线观看欧美| 亚洲一级二级三级| 成人禁用看黄a在线| 欧洲av一区二区嗯嗯嗯啊| 欧美午夜精品理论片a级按摩| 欧美午夜一区二区三区免费大片| 欧美日韩午夜在线视频| 欧美精品精品一区| 精品国产乱码久久久久久牛牛| 久久综合九色综合欧美98 | 日本视频在线一区| heyzo一本久久综合| 中文字幕日本不卡| 91丨九色丨蝌蚪丨老版| 喷水一区二区三区| 亚洲色图欧美在线| 亚洲精品在线免费观看视频| 欧美午夜一区二区三区免费大片| 国产高清精品久久久久| 亚洲国产成人精品视频| 国产精品久久久一区麻豆最新章节| 欧美体内she精高潮| 不卡电影一区二区三区| 久久er精品视频| 日韩精品亚洲专区| 日韩码欧中文字|