When InnoDB appears hung, I know the natural reaction is to check
SHOW ENGINE INNODB STATUS.
In fact, it’s the first thing I check when InnoDB tables are
involved.
However, I just want to iterate how valuable SHOW FULL
PROCESSLIST and/or mysqladmin debug outputs can be even when it
seems mysqld is hung on on InnoDB table.
Two recent cases I’ve encountered illustrate why.
Case #1:
MySQL appeared hung on the following simple, single-row INSERT:
---TRANSACTION 0 2035648699, ACTIVE 76629 sec, process no 9047,
OS thread id 3069426592, thread declared inside InnoDB 500
mysql tables in use 1, locked 1
...
INSERT INTO test (id, parent, text) VALUES (180370, 70122, 'test table')
At least that’s what it seemed per the INNODB STATUS, but
unfortunately, there wasn’t any further information to go on.
The next time it occurred, SHOW FULL PROCESSLIST was captured at
the time.
…
[Read more]