2017-11-28 17 views
0

更新、削除、挿入時に問題があります。デッドロックとロックタイムアウトの問題がmysqlで超過しました

私は、MySQL上にSHOW ENGINE INNODB STATUSを入力すると、最後のデッドロックを表示することを考え出した:

------------------------ 
LATEST DETECTED DEADLOCK 
------------------------ 
171128 2:10:22 
*** (1) TRANSACTION: 
TRANSACTION 23 2653931321, ACTIVE 3 sec, process no 19519, OS thread id 123471633422080 inserting 
mysql tables in use 1, locked 1 
LOCK WAIT 3 lock struct(s), heap size 1216, 2 row lock(s), undo log entries 1 
MySQL thread id 57910754, query id 25462868783 localhost 127.0.0.1 ***** update 
INSERT IGNORE INTO tb01 (`id_agendamento`,`nm_usuario`,`id_usuario`,`dt_cache`) values ('3000373','fulano','27861269','2017-11-28 02:10:19') 
*** (1) WAITING FOR THIS LOCK TO BE GRANTED: 
RECORD LOCKS space id 6137 page no 54196 n bits 672 index `id_agendamento` of table `dbinfos`.`tb01` trx id 23 2653931321 lock mode S waiting 
Record lock, heap no 259 PHYSICAL RECORD: n_fields 3; compact format; info bits 32 
0: len 3; hex adc835; asc 5;; 1: len 8; hex 3237383631323639; asc 27861269;; 2: len 4; hex 80921b71; asc q;; 

*** (2) TRANSACTION: 
TRANSACTION 23 2653285408, ACTIVE 143 sec, process no 19519, OS thread id 123471351097088 fetching rows, thread declared inside InnoDB 468 
mysql tables in use 1, locked 1 
109238 lock struct(s), heap size 13187056, 26792384 row lock(s), undo log entries 12217038 
MySQL thread id 57906706, query id 25461633354 localhost 127.0.0.1 ***** updating 
DELETE from tb01 WHERE dt_cache < DATE_ADD(CURDATE(), INTERVAL -1 DAY) 
*** (2) HOLDS THE LOCK(S): 
RECORD LOCKS space id 6137 page no 54196 n bits 672 index `id_agendamento` of table `dbinfos`.`tb01` trx id 23 2653285408 lock_mode X locks rec but not gap 
Record lock, heap no 259 PHYSICAL RECORD: n_fields 3; compact format; info bits 32 
0: len 3; hex adc835; asc 5;; 1: len 8; hex 3237383631323639; asc 27861269;; 2: len 4; hex 80921b71; asc q;; 

が、私は、誰かが私を助けることができる、それを修正する方法を理解できないのですか?

ありがとうございました。

+1

SOには適していません。もう少し研究を重ねた上で、それでも問題が解決しない場合はhttps://dba.stackexchange.com/をお勧めします。これはこの質問に答えることから始めるのが良い場所です。 – jdv

答えて

0

ここでちょっと野生の推測ですが、コードを開いて開いているうちにコードを実行したり、重い作業をしたりするだけではありませんか?

もしそうでなければ、ええとdba.stackexchangeがそれを聞くのに最適かもしれません。

関連する問題