count(1)、count(*)和count(主键)的区别

count(1)和count(主键) :只扫描主键
count(*):扫描表

所以count(1)和count(主键)这两个效率高   (count(ROWID)也只扫描主键,效率高。)

表做过分析后,<1W或>10W数据count(1) > count(*) ,1W<数据<10W,count(*) > count(1)
所以总的感觉,count(1)比count(*)效率高些。

 

没主键时,count(1) > count(*)

有主键时,count(联合主键) > count(*)

表只有一个字段,count(*)最快了。

总结:因为系统会对count(*)做优化,所以它们之间差别不大,推荐用count(*)

站外扩展:

count(*),count(1)和count(主键)的区别

count(1)与count(*)比较

 

posted @ 2014-09-19 16:02  IT浪潮之巅  阅读(820)  评论(0编辑  收藏  举报
   友情链接: 淘宝优惠券