count(*) 与 count(1)的区别?


在mysql与oracle中

  • 如果在开发中确实需要用到count()聚合,那么优先考虑count(*),因为mysql数据库本身对于count(*)做了特别的优化处理。
  • 有主键或联合主键的情况下,count(*)略比count(1)快一些。 
  • 没有主键的情况下count(1)比count(*)快一些。
  • count(*)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入)

在hive中

  • count(*)和count(1):对表中行数进行统计计算,包含null值。
  • count(某字段):对表中该字段的行数进行统计,不包含null值。如果出现空字符串,同样会进行统计。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM