mysql姝婚攣com.mysql.cj.jdbc.exception.MYSQLTransactionRollbackException Deadlock found when trying to

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql姝婚攣com.mysql.cj.jdbc.exception.MYSQLTransactionRollbackException Deadlock found when trying to 相关的知识,希望对你有一定的参考价值。

鏍囩锛?a href='http://www.mamicode.com/so/1/tar' title='tar'>tar   tin   abc   浜嬪姟闅旂绾у埆   nod   cep   缁撴灉   mic   绮剧‘   

1.鐢熶骇鐜鍑虹幇浠ヤ笅鎶ラ敊

鎶€鏈浘鐗? src=

 

 璇ラ敊璇彂鐢熷湪update鎿嶄綔涓紝璇ヨ〃骞舵湭寤虹珛绱㈠紩锛屼篃灏辨槸鍙湁InnoDB榛樿鐨勪富閿储寮曪紝鍙戠敓閿欒鐨勭▼搴忔槸for寰幆涓璾pdate銆?/p>

浠€涔堟儏鍐典笅浼氬嚭鐜癉eadlock found when trying to get lock锛?/p>

https://dev.mysql.com/doc/refman/5.6/en/innodb-deadlocks.html

鍑虹幇姝婚攣闇€瑕佷袱涓潯浠讹細

1锛夎嚦灏?涓鎴风锛坅,b锛夊悓鏃跺湪鎵ц浜嬪姟

2)瀹㈡埛绔痑閿佸畾浜嗘煇涓€琛岋紝鏈彁浜や簨鍔★紝姝ゆ椂瀹㈡埛绔痓涔熼渶瑕乽pdate/delete杩欎竴琛岋紝姝ゆ椂瀹㈡埛绔痓灏变細杩涘叆绛夊緟鐘舵€侊紝鐩磋嚦鍑虹幇Deadlock.

 

濡備綍鍑忓皯姝婚攣鐨勫彂鐢燂紵

寰堥噸瑕佺殑涓ょ偣锛屽氨鍙互閬垮厤杩欑鎯呭喌

1锛変簨鍔℃搷浣滈攣瀹氱殑琛屾暟杈冨皯锛堟洿绮剧‘鐨勭储寮曟潯浠讹級

2锛変繚璇佷簨鍔¤緝鐭殑鎵ц鏃堕棿锛屽畬鎴愰┈涓婃彁浜ゃ€?/p>

https://dev.mysql.com/doc/refman/5.6/en/innodb-deadlocks-handling.html

 

ps:

鎼滅储缃戜笂鐨勭瓟妗堬細

1锛夊湪閲囩敤INNODB鐨凪ySQL涓紝鏇存柊鎿嶄綔榛樿浼氬姞琛岀骇閿侊紝琛岀骇閿佹槸鍩轰簬绱㈠紩鐨勶紝鍦ㄥ垎鏋愭閿佷箣鍓嶉渶瑕佹煡璇竴涓媘ysql鐨勬墽琛岃鍒掞紝鐪嬬湅鏄惁鐢ㄥ埌浜嗙储寮曪紝鐢ㄥ埌浜嗗摢涓储寮曪紝瀵逛簬娌℃湁鐢ㄧ储寮曠殑鎿嶄綔浼氶噰鐢ㄨ〃绾ч攣銆傚鏋滄搷浣滅敤鍒颁簡涓婚敭绱㈠紩浼氬厛鍦ㄤ富閿储寮曚笂鍔犻攣锛岀劧鍚庡湪鍏朵粬绱㈠紩涓婂姞閿侊紝鍚﹀垯鍔犻攣椤哄簭鐩稿弽銆傚湪骞跺彂搴﹂珮鐨勫簲鐢ㄤ腑锛屾壒閲忔洿鏂颁竴瀹氳甯︿笂璁板綍鐨勪富閿紝浼樺厛鑾峰彇涓婚敭涓婄殑閿侊紝杩欐牱鍙互鍑忓皯姝婚攣鐨勫彂鐢熴€?br />2锛堾Transactional(noRollbackFor = mysqlTransactionRollbackException.class)

 

2  mysql鐨勫洓绉嶄簨鍔¢殧绂荤骇鍒?/p>

涓€銆佷簨鍔$殑鍩烘湰瑕佺礌锛圓CID锛?/p>

銆€銆€1銆佸師瀛愭€э紙Atomicity锛夛細浜嬪姟寮€濮嬪悗鎵€鏈夋搷浣滐紝瑕佷箞鍏ㄩ儴鍋氬畬锛岃涔堝叏閮ㄤ笉鍋氾紝涓嶅彲鑳藉仠婊炲湪涓棿鐜妭銆備簨鍔℃墽琛岃繃绋嬩腑鍑洪敊锛屼細鍥炴粴鍒颁簨鍔″紑濮嬪墠鐨勭姸鎬侊紝鎵€鏈夌殑鎿嶄綔灏卞儚娌℃湁鍙戠敓涓€鏍枫€備篃灏辨槸璇翠簨鍔℃槸涓€涓笉鍙垎鍓茬殑鏁翠綋锛屽氨鍍忓寲瀛︿腑瀛﹁繃鐨勫師瀛愶紝鏄墿璐ㄦ瀯鎴愮殑鍩烘湰鍗曚綅銆?/p>

銆€銆€ 2銆佷竴鑷存€э紙Consistency锛夛細浜嬪姟寮€濮嬪墠鍜岀粨鏉熷悗锛屾暟鎹簱鐨勫畬鏁存€х害鏉熸病鏈夎鐮村潖 銆傛瘮濡侫鍚態杞处锛屼笉鍙兘A鎵d簡閽憋紝B鍗存病鏀跺埌銆?/p>

銆€銆€ 3銆侀殧绂绘€э紙Isolation锛夛細鍚屼竴鏃堕棿锛屽彧鍏佽涓€涓簨鍔¤姹傚悓涓€鏁版嵁锛屼笉鍚岀殑浜嬪姟涔嬮棿褰兼娌℃湁浠讳綍骞叉壈銆傛瘮濡侫姝e湪浠庝竴寮犻摱琛屽崱涓彇閽憋紝鍦ˋ鍙栭挶鐨勮繃绋嬬粨鏉熷墠锛孊涓嶈兘鍚戣繖寮犲崱杞处銆?/p>

銆€銆€ 4銆佹寔涔呮€э紙Durability锛夛細浜嬪姟瀹屾垚鍚庯紝浜嬪姟瀵规暟鎹簱鐨勬墍鏈夋洿鏂板皢琚繚瀛樺埌鏁版嵁搴擄紝涓嶈兘鍥炴粴銆?/p>

 

浜屻€佷簨鍔$殑骞跺彂闂

銆€銆€1銆佽剰璇伙細浜嬪姟A璇诲彇浜嗕簨鍔鏇存柊鐨勬暟鎹紝鐒跺悗B鍥炴粴鎿嶄綔锛岄偅涔圓璇诲彇鍒扮殑鏁版嵁鏄剰鏁版嵁

銆€銆€2銆佷笉鍙噸澶嶈锛氫簨鍔?A 澶氭璇诲彇鍚屼竴鏁版嵁锛屼簨鍔?B 鍦ㄤ簨鍔澶氭璇诲彇鐨勮繃绋嬩腑锛屽鏁版嵁浣滀簡鏇存柊骞舵彁浜わ紝瀵艰嚧浜嬪姟A澶氭璇诲彇鍚屼竴鏁版嵁鏃讹紝缁撴灉 涓嶄竴鑷淬€?/p>

銆€銆€3銆佸够璇伙細绯荤粺绠$悊鍛楢灏嗘暟鎹簱涓墍鏈夊鐢熺殑鎴愮哗浠庡叿浣撳垎鏁版敼涓篈BCDE绛夌骇锛屼絾鏄郴缁熺鐞嗗憳B灏卞湪杩欎釜鏃跺€欐彃鍏ヤ簡涓€鏉″叿浣撳垎鏁扮殑璁板綍锛屽綋绯荤粺绠$悊鍛楢鏀圭粨鏉熷悗鍙戠幇杩樻湁涓€鏉¤褰曟病鏈夋敼杩囨潵锛屽氨濂藉儚鍙戠敓浜嗗够瑙変竴鏍凤紝杩欏氨鍙够璇汇€?/p>

銆€銆€灏忕粨锛氫笉鍙噸澶嶈鐨勫拰骞昏寰堝鏄撴贩娣嗭紝涓嶅彲閲嶅璇讳晶閲嶄簬淇敼锛屽够璇讳晶閲嶄簬鏂板鎴栧垹闄ゃ€傝В鍐充笉鍙噸澶嶈鐨勯棶棰樺彧闇€閿佷綇婊¤冻鏉′欢鐨勮锛岃В鍐冲够璇婚渶瑕侀攣琛?/p>

 

涓夈€丮ySQL浜嬪姟闅旂绾у埆

鎶€鏈浘鐗? src=

 

以上是关于mysql姝婚攣com.mysql.cj.jdbc.exception.MYSQLTransactionRollbackException Deadlock found when trying to 的主要内容,如果未能解决你的问题,请参考以下文章

com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别 serverTimezone设定

com.mysql.jdbc.Driver ==》 com.mysql.cj.jdbc.Driver

com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别

com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别 serverTimezone设定

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver