COUNT SQL 函数的性能

发布于 2024-08-11 15:31:58 字数 266 浏览 10 评论 0原文

当使用 COUNT 函数编写 SQL 语句时,我有两种选择。

  1. SELECT COUNT(*) FROM
  2. SELECT COUNT(some_column_name) FROM

就性能而言,最好的 SQL 语句是什么? 使用选项 1 可以获得一些性能提升吗?

I have two choices when writing an SQL statement with the COUNT function.

  1. SELECT COUNT(*) FROM <table_name>
  2. SELECT COUNT(some_column_name) FROM <table_name>

In terms of performance, what is the best SQL statement?
Can I obtain some performance gain by using option 1?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

时光礼记 2024-08-18 15:31:58

性能并不重要,因为它们执行 2 个不同的聚合

  • COUNT(*) 是所有行,包括 NULL
  • COUNT(some_column_name),排除“some_column_name”中的 NULL >"

有关详细信息,请参阅“Count(*) 与 Count(1)”问题

Performance should not matter because they do 2 different aggregates

  • COUNT(*) is all rows, including NULLs
  • COUNT(some_column_name), excludes NULL in "some_column_name"

See the "Count(*) vs Count(1)" question for more

美人骨 2024-08-18 15:31:58

选项 2 实际上会计算 some_column_name 不为 null 的所有字段。选项 1 对任意字段不为空的所有字段进行计数。因此,您实际上可能从这两个查询中得到不同的结果。大多数时候,您实际上想要对所有行进行计数,然后最快的选项(不检查任何字段)就是 SELECT COUNT(1) FROM ...

Option 2 actually counts all the fields where some_column_name is not null. Option 1 counts all the fields where any field is not null. So you might actually get different results out of these two queries. Most of the time you actually want to count all the rows, and then the fastest option, which does not check for any of the fields, is simply SELECT COUNT(1) FROM ...

狂之美人 2024-08-18 15:31:58

不,Sql Server 没有性能提升。

No, there is no performance gain in Sql Server.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文