Tags1:min_examined_row_limit有会话变量和全局变量,动态改变参数值的时候需要分别进行修改,实测过程中改变全局变量(set global min_examined_row_limit=100)不会同步改变会话变量(set min_examined_row_limit=100),因此必须手动改变会话变量,才会对当前会话有效。
Tags2:需要注意的是min_examined_row_limit检测的行数有时候与explain的有些出入,有时候同一个语句,explain显示的select_type=simple的扫描行数rows与慢查询日志中记录的Rows_examined:不一样,后者会多500行左右,不知道为何
下面是Mariadb 5.5.64服务器上进行测试的相关代码:
explain select * from hpx_member where u_id = 888444;#u_id 有索引测试
explain select * from hpx_member where major = '8881';#major没有索引测试
explain select * from hpx_member where phone like '15933%';#phone有索引测试,测试扫描行数与min_examined_row_limit关系
select * from hpx_member where phone like '1593356%';
show global VARIABLES like '%index%'
show VARIABLES like '%index%'
show global VARIABLES like '%min_examined_row_limit%'
show VARIABLES like '%min_examined_row_limit%'
show VARIABLES like '%long_query_time%'
set global long_query_time=0.0001
set global log_queries_not_using_indexes=off
set global min_examined_row_limit=0
set min_examined_row_limit=50
select sleep(2),8888;