通过JDBC并行操作数据库,出现了令我百思不得其解的问题。两张毫无关联的表更新时竟出现了死锁,我尝试了各种办法还是没法解决,求助各位大神给指指路~~小弟不胜感激。
涉及的表的表结构:
clusterNode(clusterid,nodeid,adjnodeid
nodeinfo(nodeid,seedmetric)
下划线为主键,nodeid,adjnodeid为外键参考nodeinfo.nodeid,但是最后我怀疑是外键的问题所以将外键关系删除了,但是死锁依旧存在。。实话说下面这个日志小弟也没咋看懂,求能有大侠指点下。| InnoDB |      | 
=====================================
150323 18:37:19 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 11 seconds
----------
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 3268, signal count 3100
Mutex spin waits 0, rounds 95957, OS waits 1303
RW-shared spins 1674, OS waits 764; RW-excl spins 1716, OS waits 1038
------------------------
LATEST DETECTED DEADLOCK
------------------------
150323 18:03:46
*** (1) TRANSACTION:
TRANSACTION 0 115579, ACTIVE 0 sec, process no 3300, OS thread id 140693453649664 starting index read
mysql tables in use 1, locked 1
LOCK WAIT 8 lock struct(s), heap size 1216, 7 row lock(s), undo log entries 6
MySQL thread id 16, query id 8713 slave2 192.168.211.253 root Updating
UPDATE nodeinfo SET seedmetric='-1003' WHERE nodeid= '1178394884274'
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 348 n bits 248 index `PRIMARY` of table `NCHadoop`.`nodeinfo` trx id 0 115579 lock_mode X locks rec but not gap waiting
Record lock, heap no 167 PHYSICAL RECORD: n_fields 4; compact format; info bits 0
 0: len 13; hex 31313738333934383834323734; asc 1178394884274;; 1: len 6; hex 00000001c303; asc       ;; 2: len 7; hex 800000015b113c; asc     [ <;; 3: len 4; hex d2667841; asc  fxA;;*** (2) TRANSACTION:
TRANSACTION 0 115577, ACTIVE 0 sec, process no 3300, OS thread id 140693453915904 inserting, thread declared inside InnoDB 500
mysql tables in use 1, locked 1
21 lock struct(s), heap size 3024, 38 row lock(s), undo log entries 35
MySQL thread id 14, query id 8738 slave1 192.168.211.252 root update
insert into clusternode(clusterid,nodeid,adjnodeid) values( '1008' , '1035088484909' ,'1199299151758' )
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 0 page no 348 n bits 248 index `PRIMARY` of table `NCHadoop`.`nodeinfo` trx id 0 115577 lock mode S locks rec but not gap
Record lock, heap no 71 PHYSICAL RECORD: n_fields 4; compact format; info bits 0
 0: len 13; hex 31313739393835333936333630; asc 1179985396360;; 1: len 6; hex 00000001c300; asc       ;; 2: len 7; hex 80000001460d48; asc     F H;; 3: len 4; hex 1ed64f41; asc   OA;;Record lock, heap no 141 PHYSICAL RECORD: n_fields 4; compact format; info bits 0
 0: len 13; hex 31313733363430393934393132; asc 1173640994912;; 1: len 6; hex 00000001c303; asc       ;; 2: len 7; hex 800000015b0f00; asc     [  ;; 3: len 4; hex 881b2941; asc   )A;;Record lock, heap no 167 PHYSICAL RECORD: n_fields 4; compact format; info bits 0
 0: len 13; hex 31313738333934383834323734; asc 1178394884274;; 1: len 6; hex 00000001c303; asc       ;; 2: len 7; hex 800000015b113c; asc     [ <;; 3: len 4; hex d2667841; asc  fxA;;*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 331 n bits 456 index `PRIMARY` of table `NCHadoop`.`nodeinfo` trx id 0 115577 lock mode S locks rec but not gap waiting
Record lock, heap no 201 PHYSICAL RECORD: n_fields 4; compact format; info bits 0
 0: len 13; hex 31313939323939313531373538; asc 1199299151758;; 1: len 6; hex 00000001c37b; asc      {;; 2: len 7; hex 000000017c1b7a; asc     | z;; 3: len 4; hex 00c07ac4; asc   z ;;*** WE ROLL BACK TRANSACTION (1)