1

遅いテスト サーバーで MySQL トランザクション デッドロックに直面しています。SQL はあまり得意ではありませんが、デッドロックが発生した場合にクエリを再実行しようとしましたが、結果は同じままです。テーブルには 2 つのインデックスがあります - "Primary key index"(Single column auto-inc) と Unique key Index (3 列)。ループに約 900 レコードを挿入しようとしていますが、テーブルには約 172000 レコードがあります。InnoDB エンジンのステータスは次のとおりです:-

------------------------\
150519  0:59:26\
*** (1) TRANSACTION:\
TRANSACTION B7486FB, ACTIVE 0 sec inserting\
mysql tables in use 3, locked 3\
LOCK WAIT 18 lock struct(s), heap size 3112, 8 row lock(s), undo log entries 3\
MySQL thread id 329364, OS thread handle 0x2e90, query id 30582437 executing\
INSERT INTO Table(Field 1, Field 2 ..... Field9)     
\
                                        SELECT 
\
                                        Field1Value,Field2Value.... Field9Value
\
                                        FROM DUAL WHERE (Condition1 ) AND Condition2

*** (1) WAITING FOR THIS LOCK TO BE GRANTED:\
RECORD LOCKS space id 0 page no 2281088 n bits 112 index `UniqueCodeAndSubCode` of table Database :Table1 trx id B7486FB lock_mode X insert intention waiting\
Record lock, heap no 1 PHYSICAL RECORD: n_fields 1; compact format; info bits 0\
 0: len 8; hex 73757072656d756d; asc supremum;;\
\
*** (2) TRANSACTION:\
TRANSACTION B7486DD, ACTIVE 30 sec setting auto-inc lock\
mysql tables in use 3, locked 3\
29 lock struct(s), heap size 6960, 582 row lock(s), undo log entries 1718\
MySQL thread id 329359, OS thread handle 0x10d0, query id 30582440 executing\
INSERT INTO Table(Field 1, Field 2 ..... Field9)     
\
                                        SELECT 
\
                                        Field1Value,Field2Value.... Field9Value
\
                                        FROM DUAL WHERE (Condition1 ) AND Condition2
*** (2) HOLDS THE LOCK(S):\
RECORD LOCKS space id 0 page no 2281088 n bits 72 index `UniqueCodeAndSubCode` of table Database:Table1 trx id B7486DD lock mode S\
Record lock, heap no 1 PHYSICAL RECORD: n_fields 1; compact format; info bits 0\
 0: len 8; hex 73757072656d756d; asc supremum;;\
\
*** (2) WAITING FOR THIS LOCK TO BE GRANTED:\
TABLE LOCK table `Database1`.`Table1` trx id B7486DD lock mode AUTO-INC waiting\
*** WE ROLL BACK TRANSACTION (1)\

可能な回避策があれば知りたいです。

この点でどんな助けでも大歓迎です。

前もって感謝します !

4

0 に答える 0