job is null和job is not null同时走了索引
is null的type为ref也就是is null和数据分布无关
is not null的type为range,走不走索引和数据分布有关(is not null 的数据少,优化器认为走索引效率高)
select (select count(*) from emp where job is null)/(select count(*) from emp); # 0.9967
select (select count(*) from emp where job is not null)/(select count(*) from emp); # 0.0033
select count(*) from emp; # 3001011
select count(*) from emp where job is null; # 2991012
select count(*) from emp where job is not null; # 9999
reset query cache ;
explain select * from emp where job is null;
explain select * from emp where job is not null;