【问题标题】:what is the difference between count(*) and count(1) in sql? [duplicate]sql中count(*)和count(1)有什么区别? [复制]
【发布时间】:2015-03-03 17:48:03
【问题描述】:

大家好,我是SQL 的新手? SQL中的count(*)和count(1)有什么区别?

谢谢

【问题讨论】:

标签: sql sql-server-2008-r2


【解决方案1】:

没有区别。

Select Count(*) from TableName
Select Count(1) from TableName

人们普遍认为 Count(1) 比 Count() 性能更好,但事实并非如此。如果您通过查看执行计划进行测试,您将看到命令执行的操作相同,并且扫描的行数相同。 count() 的 CPU 使用时间可能略有不同,但与 count(1) 几乎相同。混淆通常是因为在旧版本的某些 RDBMS 产品(如 Oracle)中,select count(*) 和 count(1) 的性能存在差异,但最近的版本没有任何差异。

参考这个: http://www.sqlserverf1.com/difference-between-select-count-and-count1-in-sql-server/

Count(*) vs Count(1)

【讨论】:

  • 有什么区别?
  • @bilal 没有区别。 ..查看帖子:stackoverflow.com/questions/1221559/count-vs-count1
  • 我认为对执行成本的混淆也是由于SELECT * 通常比SELECT 1SELECT intColumn 更昂贵。当然,COUNT(*) 在解析器/引擎中会有特定的优化代码,它会认识到不需要获取每一列的内容。
猜你喜欢
  • 1970-01-01
  • 2010-09-08
  • 2014-06-09
  • 2010-09-08
  • 2011-02-22
  • 2020-03-02
  • 1970-01-01
  • 2020-11-10
相关资源
最近更新 更多