虽说count(*)与count(col)在不同的情况下,可能会表现出不同的性能。
但是一般情况下,count(*)会对主键进行索引扫描,统计的是表中所有符合的记录总数;而count(col)扫描的不一定是主键,它统计的是表中所有符合的col列的记录量。
对于以下两种查询:
select count(*) from tbl_name;
select count(col) from tbl_name;
如果col是主键,count(*)与count(col)应当表现出相当的性能;否则count(*)比count(col)更快。
以下是参考别人的优化总结:
mysql的count优化总结:
1.任何情况下SELECT COUNT(*) FROM tablename是最优选择;
2.尽量减少SELECT COUNT(*) FROM tablename WHERE COL = 'value’ 这种查询;
3.杜绝SELECT COUNT(COL) FROM tablename的出现。
参考连接:http://www.ccvita.com/347.html