gpt4 book ai didi

SQL 最佳实践 : count(1) or count(*)

转载 作者:行者123 更新时间:2023-12-03 20:01:12 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




10年前关闭。




Possible Duplicate:
Count(*) vs Count(1)



我记得轶事被告知:

never use count(*) when count(1) will do



最近我将这个建议传递给了另一位开发人员,并被要求证明这是真的。我的论点是当我得到建议时被告知的内容:数据库将只返回第一列,然后会被计算在内。反对意见是数据库不会评估括号中的任何内容。

从一些(不科学的)小 table 上的测试来看,似乎肯定没有区别。我目前无法访问任何大型表进行实验。

我在使用 Sybase 时得到了这个建议,并且表有数亿行。我现在正在使用 Oracle 并且数据要少得多。

所以我想总而言之,我的两个问题是:
  • count(1) 和 count(*) 哪个更快?
  • 这会因不同的数据库供应商而异吗?
  • 最佳答案

    根据另一个类似的问题( Count(*) vs Count(1) ),它们是相同的。

    在 Oracle 中,根据 Ask Tom , count(*) 是计算行数的正确方法,因为优化器将 count(1) 更改为 count(*)。 count(1) 实际上是指对非空 1 的行进行计数(它们都是非空的,所以优化器会为你改变它)。

    关于SQL 最佳实践 : count(1) or count(*),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7124546/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com