mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
697dbd15e0
Consistent with MDEV-4206 and empty log_slow_filter still means
no explict filtering. Since 21518ab2e4
however the
log_queries_not_using_indexes became stored in the same variable.
As we need to test for the absense of log_queries_not_using_indexes
the SERVER_QUERY_NO_INDEX USED part of log_slow_statement, the empty
criteria resulted in an always true to log queries not using indexes if
log_slow_filter was set to empty.
Adjusted the log_slow.test for MDEV-4206 as slow_log_query has been
global and session for a while and it was relying on the MDEV-21187
buggy behavior to detect a slow query.
Reviewer: Monty
135 lines
4.2 KiB
Text
135 lines
4.2 KiB
Text
set @@log_slow_verbosity="";
|
|
select @@log_slow_filter;
|
|
@@log_slow_filter
|
|
admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk
|
|
select @@log_slow_rate_limit;
|
|
@@log_slow_rate_limit
|
|
1
|
|
select @@log_slow_verbosity;
|
|
@@log_slow_verbosity
|
|
|
|
show variables like "log_slow%";
|
|
Variable_name Value
|
|
log_slow_admin_statements ON
|
|
log_slow_disabled_statements sp
|
|
log_slow_filter admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk
|
|
log_slow_rate_limit 1
|
|
log_slow_slave_statements ON
|
|
log_slow_verbosity
|
|
set @org_slow_query_log= @@global.slow_query_log;
|
|
set @@log_slow_filter= "filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk,admin";
|
|
select @@log_slow_filter;
|
|
@@log_slow_filter
|
|
admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk
|
|
set @@log_slow_filter="admin,admin";
|
|
select @@log_slow_filter;
|
|
@@log_slow_filter
|
|
admin
|
|
set @@log_slow_filter=7;
|
|
select @@log_slow_filter;
|
|
@@log_slow_filter
|
|
admin,filesort,filesort_on_disk
|
|
set @@log_slow_filter= "filesort,impossible,impossible2,admin";
|
|
ERROR 42000: Variable 'log_slow_filter' can't be set to the value of 'impossible'
|
|
set @@log_slow_filter= "filesort, admin";
|
|
ERROR 42000: Variable 'log_slow_filter' can't be set to the value of ' admin'
|
|
set @@log_slow_filter= 1<<31;
|
|
ERROR 42000: Variable 'log_slow_filter' can't be set to the value of '2147483648'
|
|
select @@log_slow_filter;
|
|
@@log_slow_filter
|
|
admin,filesort,filesort_on_disk
|
|
set @@log_slow_verbosity= "query_plan,innodb";
|
|
select @@log_slow_verbosity;
|
|
@@log_slow_verbosity
|
|
innodb,query_plan
|
|
set @@log_slow_verbosity=1;
|
|
select @@log_slow_verbosity;
|
|
@@log_slow_verbosity
|
|
innodb
|
|
show fields from mysql.slow_log;
|
|
Field Type Null Key Default Extra
|
|
start_time timestamp(6) NO current_timestamp(6) on update current_timestamp(6)
|
|
user_host mediumtext NO NULL
|
|
query_time time(6) NO NULL
|
|
lock_time time(6) NO NULL
|
|
rows_sent int(11) NO NULL
|
|
rows_examined int(11) NO NULL
|
|
db varchar(512) NO NULL
|
|
last_insert_id int(11) NO NULL
|
|
insert_id int(11) NO NULL
|
|
server_id int(10) unsigned NO NULL
|
|
sql_text mediumtext NO NULL
|
|
thread_id bigint(21) unsigned NO NULL
|
|
rows_affected int(11) NO NULL
|
|
flush slow logs;
|
|
set long_query_time=0.1;
|
|
set log_slow_filter='';
|
|
set slow_query_log=1;
|
|
set global log_output='TABLE';
|
|
select sleep(0.5);
|
|
sleep(0.5)
|
|
0
|
|
select count(*) FROM mysql.slow_log;
|
|
count(*)
|
|
1
|
|
set @@long_query_time=default;
|
|
set @@slow_query_log=default;
|
|
set @@log_slow_filter=default;
|
|
set @@log_slow_verbosity=default;
|
|
set global log_output= default;
|
|
truncate mysql.slow_log;
|
|
#
|
|
# MDEV-18333 Slow_queries count doesn't increase when slow_query_log is turned off
|
|
#
|
|
SET SESSION slow_query_log=OFF;
|
|
SET GLOBAL slow_query_log=OFF;
|
|
SET long_query_time=0.1;
|
|
# Although this query is disallowed by slow_query_log, it should still increment Slow_queries
|
|
SELECT VARIABLE_VALUE INTO @global_slow_queries
|
|
FROM INFORMATION_SCHEMA.GLOBAL_STATUS
|
|
WHERE VARIABLE_NAME='SLOW_QUERIES';
|
|
SELECT sleep(0.2) INTO @tmp FROM DUAL;
|
|
SELECT
|
|
CAST(VARIABLE_VALUE AS UNSIGNED)-@global_slow_queries AS Slow_queries_increment
|
|
FROM
|
|
INFORMATION_SCHEMA.GLOBAL_STATUS
|
|
WHERE
|
|
VARIABLE_NAME='SLOW_QUERIES';
|
|
Slow_queries_increment
|
|
1
|
|
# Although this query is disallowed by log_slow_filter, it should still increment Slow_queries
|
|
SET log_slow_filter=filesort;
|
|
SELECT sleep(0.2) INTO @tmp FROM DUAL;
|
|
SELECT VARIABLE_VALUE INTO @global_slow_queries
|
|
FROM INFORMATION_SCHEMA.GLOBAL_STATUS
|
|
WHERE VARIABLE_NAME='SLOW_QUERIES';
|
|
SELECT sleep(0.2) INTO @tmp FROM DUAL;
|
|
SELECT
|
|
CAST(VARIABLE_VALUE AS UNSIGNED)-@global_slow_queries AS Slow_queries_increment
|
|
FROM
|
|
INFORMATION_SCHEMA.GLOBAL_STATUS
|
|
WHERE
|
|
VARIABLE_NAME='SLOW_QUERIES';
|
|
Slow_queries_increment
|
|
1
|
|
SET log_slow_filter=DEFAULT;
|
|
SET @@long_query_time=default;
|
|
SET GLOBAL slow_query_log= @org_slow_query_log;
|
|
#
|
|
# MDEV-21187: log_slow_filter="" logs queries not using indexes
|
|
#
|
|
flush status;
|
|
create table t (id int);
|
|
insert into t values (1),(4);
|
|
set log_slow_filter='';
|
|
select * from t;
|
|
id
|
|
1
|
|
4
|
|
show session status like 'Slow_queries';
|
|
Variable_name Value
|
|
Slow_queries 0
|
|
drop table t;
|
|
#
|
|
# End of 10.3 tests
|
|
#
|