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: ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access