1、如果索引列有非空约束,则可以用到索引;
2、或者采用 select count(*) from T where 索引列 is not null;也可以用到索引,即使索引列没有非空约束。
当表字段很多,并且字段长度大多很长,这时如果在一个非空且长度很短的列建一个索引,这时索引的体积相对表来说很小,那么索引读的效率就高很多;
sum(索引列)和avg(索引列)和count(*)同理,都要注意非空问题;
min(索引列)和max(索引列)则不需要考虑空值问题;
select max(索引列),min(索引列) from t;
如果索引列没有非空约束,则走全表扫描;如果索引列有非空约束,则走INDEX FAST FULL SCAN
select max, min
from (select max(索引列) max from t ) a,
(select min(索引列) min from t ) b;
走INDEX FULL SCAN (MIN/MAX)更高效