【问题标题】:sybase - Is there any performance difference between count(*) and count(1)sybase - count(*) 和 count(1) 之间是否存在性能差异
【发布时间】:2012-08-21 15:49:44
【问题描述】:

查询 1:

SELECT COUNT(1) FROM STUDENTS

查询 2:

SELECT COUNT(*) FROM STUDENTS

这两个查询都返回相同的结果,但这两者之间有什么性能差异吗?

我听说第一个查询会比第二个查询快,但是谁能给出具体的细节?

【问题讨论】:

标签: performance count sybase


【解决方案1】:

您可以使用count(*)count(1),其中一个不会比另一个快。如前所述,只是一个城市传奇:)


最后一点,count(*)count(columnName) 可能不同!
第一个计算所有行,第二个计算指定列不为 NULL 的行数.

【讨论】:

  • 请注意,COUNT(Column) 可能需要表扫描(慢),而 COUNT(*) 可能不需要(基本表元数据)。
【解决方案2】:

这两种说法没有任何区别。

count(1) 速度更快的谣言是一个从未成为真实的都市传说。

【讨论】:

  • 这是一个与 DBMS 无关的答案;使用哪个 DBMS 并不重要!
  • @JonathanLeffler:是的,绝对的。
猜你喜欢
  • 2016-12-24
  • 2021-07-04
  • 1970-01-01
  • 2010-09-13
  • 2012-03-05
  • 2014-05-17
  • 1970-01-01
  • 2023-03-15
  • 2014-02-23
相关资源
最近更新 更多