mysql:count(*)、count(1)与count(column) 的区别

count(*):对行的数目进行计算,包含NULL

count(column):对特定的列的值具有的行数进行计算,不包含NULL值。

count():还有一种使用方式,count(1)这个用法和count(*)的结果是一样的。

 

mysql性能区别

 

1、任何情况下SELECT COUNT(*) FROM tablename是最优选择;

 

2、尽量减少SELECT COUNT(*) FROM tablename WHERE COL = ‘value’ 这种查询;

 

3、杜绝SELECT COUNT(COL) FROM tablename WHERE COL2 = ‘value’ 的出现。

 

count(1)、count(*)

 

如果表没有主键,那么count(1)比count(*)快。

如果有主键,那么count(主键,联合主键)比count(*)快。

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

count(1)跟count(主键)一样,只扫描主键。count(*)跟count(非主键)一样,扫描整个表。明显前者更快一些。

    A+
发布日期:2017年09月22日 20:44:59  所属分类:MySQL
最后更新时间:2017-09-22 20:44:59
付杰
  • ¥ 79.0元
  • 市场价:99.0元
  • ¥ 299.0元
  • 市场价:599.0元
  • ¥ 298.0元
  • 市场价:398.0元
  • ¥ 999元
  • 市场价:4999元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  0   博主  0

  1. 头像 梅阁 1

    这应该就是所谓的数据库优化了吧!