You can use slow query log to record all the traffic but be careful with this action as logging all traffic could be very I/O intensive and could have negative impact on general performance. It is recommended to record all traffic only for specific time periods.
This is why slow query logging is controlled with long_query_time parameter to log only slow queries.
But there is another parameter to think about - log_queries_not_using_indexes.
By default log_queries_not_using_indexes is disabled. If you have this parameter turned on you will log queries that don’t use an index, or that perform a full index scan where the index doesn't limit the number of rows - regardless of time taken.
If you have long_query_time configured to reasonable time, and still notice that queries are intensively logged in slow query log file, then you probably have enabled log_queries_not_using_indexes.
Enabling this parameter you’re practically saying that full scans are "evil" and should be considered for optimisation. But full scan doesn’t always mean that query is slow. In some situations query optimizer chooses full table scan as better option than index or you are probably querying very small table.
For instance, on several occasions I've noticed slow query logs flooded with queries like this:
# Time: 171021 17:51:45 # User@Host: monitor[monitor] @ localhost [] # Thread_id: 1492974 Schema: QC_hit: No # Query_time: 0.000321 Lock_time: 0.000072 Rows_sent: 0 Rows_examined: 1 # Full_scan: Yes Full_join: No Tmp_table: Yes Tmp_table_on_disk: No # Filesort: No Filesort_on_disk: No Merge_passes: 0 Priority_queue: No SET timestamp=1508608305; SELECT SCHEMA_NAME FROM information_schema.schemata WHERE SCHEMA_NAME NOT IN ('mysql', 'performance_schema', 'information_schema'); +------+-------------+----------+------+---------------+------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +------+-------------+----------+------+---------------+------+---------+------+------+-------------+ | 1 | SIMPLE | schemata | ALL | NULL | NULL | NULL | NULL | NULL | Using where | +------+-------------+----------+------+---------------+------+---------+------+------+-------------+Notice, Query_time: 0.000321.
Should I optimize query that is running 0.000321 secs with adding indexes. Probably not. But anyway, my log is flooded with this or similar queries.
I don’t see that parameter very useful and I would leave it on default value to avoid possible problems with intensive query logging.
0 Comments:
Post a Comment