Here's a list of status variables returned by SHOW STATUS that are useful in validating the our SQL statements and the MySQL server settings. Generally we want to watch out for operations that hit the disk unnecessarily or search/sort data without using an index. ---------------------- INDEX USAGE: Select_scan The number of joins that did a full scan of the first table. Handler_read_key The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed. Handler_read_next The number of requests to read the next row in key order. This will be incremented if you are querying an index column with a range constraint or if you are doing an index scan. Handler_read_prev The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC. Handler_read_rnd The number of requests to read a row based on a fixed position. This will be high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don't use keys properly. Handler_read_rnd_next The number of requests to read the next row in the data file. This will be high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have. Key_blocks_unused Key_blocks_used The number of used blocks in the key cache. You can use this value to determine how much of the key cache is in use; see the discussion of key_buffer_size in section 5.2.3 Server System Variables. Key_read_requests The number of requests to read a key block from the cache. Key_reads The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests. ----------------- QUERY PERFORMANCE: Slow_queries The number of queries that have taken more than long_query_time seconds. See section 5.9.5 The Slow Query Log. ---------------- SORTING: Sort_merge_passes The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable. Sort_range The number of sorts that were done with ranges. Sort_rows The number of sorted rows. Sort_scan The number of sorts that were done by scanning the table. -------------- QUERY CACHE: Qcache_free_blocks The number of free memory blocks in query cache. Qcache_free_memory The amount of free memory for query cache. Qcache_hits The number of cache hits. Qcache_inserts The number of queries added to the cache. Qcache_lowmem_prunes The number of queries that were deleted from the cache because of low memory. Qcache_not_cached The number of non-cached queries (not cachable, or due to query_cache_type). Qcache_queries_in_cache The number of queries registered in the cache. Qcache_total_blocks The total number of blocks in the query cache. ---------------- MISC: Uptime The number of seconds the server has been up. Binlog_cache_disk_use The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction. Created_tmp_disk_tables The number of temporary tables on disk created automatically by the server while executing statements. Opened_tables The number of tables that have been opened. If Opened_tables is big, your table_cache value is probably too small.