1:count(*)和count(col)
COUNT(*)通常是对主键进行索引扫描,而COUNT(COL)就不一定了,另外前者是统计表中的所有符合的纪录总数,而后者是计算表中所有符合的COL的纪录数。还有有区别的。
优化总结,对于MyISAM表来说:
1.任何情况下SELECT COUNT(*) FROM tablename是最优选择;
2.尽量减少SELECT COUNT(*) FROMtablename WHERE COL = ‘value’ 这种查询;
3.杜绝SELECT COUNT(COL) FROM tablename WHERE COL2 =’value’ 的出现。
select count(*) from student ;
0.817-一百万条的查询时间
select count(id) from student;
0.789-一百万条的查询时间
select count(name) from student;
1.011-一百万条的查询时间
SELECT COUNT(*) FROM student WHERE name like '%xiaoli%';
#默认用主键索引查询,但是加上like条件后索引失效
1.162-一百万条的查询时间
总结
总的来说,使用COUNT(id)还是更快一些