Effectively Using MySQL Troubleshooting Tools
To end this chapter, I want to repeat the descriptions of tools we used and describe some of their useful features that I bypassed before.
SHOW PROCESSLIST and the INFORMATION_SCHEMA.PROCESSLIST Table
SHOW PROCESSLIST
is the first tool to use when you suspect a
concurrency issue. It will not show the relationships among statements
in multistatement transactions, but will expose the symptoms of the
problem to confirm that more investigation of concurrency is needed. The main symptom is
a thread that’s in the “Sleep” state for a long time.
The examples in this chapter used the short version of SHOW PROCESSLIST
, which crops long queries.
SHOW FULL PROCESSLIST
shows the full
query, which can be convenient if you have long queries and it’s not
easy to guess the full version from just the beginning of the
query.
Starting with version 5.1, MySQL also offers the INFORMATION_SCHEMA.PROCESSLIST
table, with the same data as SHOW FULL PROCESSLIST
. On busy servers, the
table greatly facilitates troubleshooting because you can use SQL to
narrow down what you see:
slave2> SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST\G
*************************** 1. row *************************** ID: 5 USER: msandbox HOST: localhost DB: information_schema COMMAND: Query TIME: 0 STATE: executing INFO: SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST *************************** 2. row *************************** ID: 4 USER: msandbox HOST: localhost DB: test COMMAND: Sleep TIME: ...
Get MySQL Troubleshooting now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.