Drop files here

SQL upload ( 0 ) x -

Page-related settings Click on the bar to scroll to top of page
Press Ctrl+Enter to execute query Press Enter to execute query
ascending
descending
Order:
Debug SQL
Count
Execution order
Time taken
Order by:
Group queries
Ungroup queries
Collapse Expand Show trace Hide trace Count Time taken
Bookmarks
Refresh
Add
No bookmarks
Add bookmark
Options
Set default





Collapse Expand Requery Edit Explain Profiling Bookmark Query failed Database : Queried time :

Advisor system

Possible performance issues

Issue:
long_query_time is set to 10 seconds or more, thus only slow queries that take above 10 seconds are logged.
Recommendation:
It is suggested to set long_query_time to a lower value, depending on your environment. Usually a value of 1-5 seconds is suggested.
Justification:
long_query_time is currently set to 10s.
Used variable / formula:
long_query_time
Test:
value >= 10
Issue:
The slow query log is disabled.
Recommendation:
Enable slow query logging by setting slow_query_log to 'ON'. This will help troubleshooting badly performing queries.
Justification:
slow_query_log is set to 'OFF'
Used variable / formula:
slow_query_log
Test:
value == 'OFF'
Issue:
Suboptimal caching method.
Recommendation:
You are using the MySQL Query cache with a fairly high traffic database. It might be worth considering to use memcached instead of the MySQL Query cache, especially if you have multiple slaves.
Justification:
The query cache is enabled and the server receives 166 queries per second. This rule fires if there is more than 100 queries per second.
Used variable / formula:
Questions / Uptime
Test:
value > 100
Issue:
There are lots of rows being sorted.
Recommendation:
While there is nothing wrong with a high amount of row sorting, you might want to make sure that the queries which require a lot of sorting use indexed columns in the ORDER BY clause, as this will result in much faster sorting.
Justification:
Sorted rows average: 11.13 per minute
Used variable / formula:
Sort_rows / Uptime
Test:
value * 60 >= 1
Issue:
There are too many joins without indexes.
Recommendation:
This means that joins are doing full table scans. Adding indexes for the columns being used in the join conditions will greatly speed up table joins.
Justification:
Table joins average: 1.6 per minute, this value should be less than 1 per hour
Used variable / formula:
(Select_range_check + Select_scan + Select_full_join) / Uptime
Test:
value * 60 * 60 > 1
Issue:
The rate of reading the first index entry is high.
Recommendation:
This usually indicates frequent full index scans. Full index scans are faster than table scans but require lots of CPU cycles in big tables, if those tables that have or had high volumes of UPDATEs and DELETEs, running 'OPTIMIZE TABLE' might reduce the amount of and/or speed up full index scans. Other than that full index scans can only be reduced by rewriting queries.
Justification:
Index scans average: 2.49 per hour, this value should be less than 1 per hour
Used variable / formula:
Handler_read_first / Uptime
Test:
value * 60 * 60 > 1
Issue:
The rate of reading data from a fixed position is high.
Recommendation:
This indicates that many queries need to sort results and/or do a full table scan, including join queries that do not use indexes. Add indexes where applicable.
Justification:
Rate of reading fixed position average: 10.81 per minute, this value should be less than 1 per hour
Used variable / formula:
Handler_read_rnd / Uptime
Test:
value * 60 * 60 > 1
Issue:
The rate of reading the next table row is high.
Recommendation:
This indicates that many queries are doing full table scans. Add indexes where applicable.
Justification:
Rate of reading next table row: 452.92 per second, this value should be less than 1 per hour
Used variable / formula:
Handler_read_rnd_next / Uptime
Test:
value * 60 * 60 > 1
Issue:
Many temporary tables are being written to disk instead of being kept in memory.
Recommendation:
Increasing max_heap_table_size and tmp_table_size might help. However some temporary tables are always being written to disk, independent of the value of these variables. To eliminate these you will have to rewrite your queries to avoid those conditions (Within a temporary table: Presence of a BLOB or TEXT column or presence of a column bigger than 512 bytes) as mentioned in the MySQL Documentation
Justification:
Rate of temporary tables being written to disk: 11.33 per hour, this value should be less than 1 per hour
Used variable / formula:
Created_tmp_disk_tables / Uptime
Test:
value * 60 * 60 > 1
Issue:
MyISAM key buffer (index cache) % used is low.
Recommendation:
You may need to decrease the size of key_buffer_size, re-examine your tables to see if indexes have been removed, or examine queries and expectations about what indexes are being used.
Justification:
max % MyISAM key buffer ever used: 0%, this value should be above 95%
Used variable / formula:
Key_blocks_used * key_cache_block_size / key_buffer_size * 100
Test:
value < 95
Issue:
The query cache is not enabled.
Recommendation:
The query cache is known to greatly improve performance if configured correctly. Enable it by setting query_cache_size to a 2 digit MiB value and setting query_cache_type to 'ON'. Note: If you are using memcached, ignore this recommendation.
Justification:
query_cache_size is set to 0 or query_cache_type is set to 'OFF'
Used variable / formula:
query_cache_size
Test:
value == 0 || query_cache_type == 'OFF' || query_cache_type == '0'