Different thread states in query execution My MySQL 5.1 based Intranet system is facing very bad performance during high load. When observed through MonYog, I found below thread states:



We can simply understand the different thread state by its name. Can someone provide the 


differences among these states?
Why "sending data" is taking 76%?
differences among these states?
The MySQL Documentation provides a list of those states.
From your MONYog graph, here are the states:

Sending data
The thread is reading and processing rows for a SELECT statement, and sending data to the client. Because operations occurring during this this state tend to perform large amounts of disk access (reads), it is often the longest-running state over the lifetime of a given query.
Copying to tmp table
The server is copying to a temporary table in memory.
Sorting result
For a SELECT statement, this is similar to Creating sort index, but for nontemporary tables.
freeing items
The thread has executed a command. Some freeing of items done during this state involves the query cache. This state is usually followed by cleaning up.

Why &quot;sending data&quot; is taking 76%?
As the Documentation says, data is being sent to the client.
What would attribute to the high load ?

Queries that return lots of rows
Lots of queries

Queries that return lots of rows
If you have queries returning lots of rows, tune your queries to return less data, perhaps adding effective WHERE and LIMIT clauses to SELECTs.
Lots of queries
If you do not have queries returning lots of rows, then it must be lots of queries. You may find this surprising, but MONYog queries mysqld for the global status variables with either
SHOW GLOBAL VARIABLES;

or
SELECT * FROM information_schema.global_status;

These constitute queries as well.
Perhaps you could configure MONYog to retrieve status information less often.