L D*_*L D 6 sql postgresql count
我已经看到了其他数据库(MySQL、SQL Server 等)的这个问题的答案,但没有看到 PostgreSQL 的答案。那么,选择表的行数COUNT(1)是否更快/更好?COUNT(*)
上次我对 PostgreSQL 11.3和PostgreSQL 11.3之间的差异进行基准测试COUNT(*)COUNT(1)时,我发现速度COUNT(*)快了大约 10%。Vik Fearing 当时的解释是,1正在为整个计数循环评估常量表达式(或至少其可空性)。我还没有检查这个问题是否已在 PostgreSQL 14 中修复。
但是,您不必担心这种性能差异。10% 的差异在基准测试中是可以测量的,但我怀疑您能否在普通查询中一致地测量这样的差异。此外,理想情况下,所有 SQL 供应商都以相同的方式优化这两件事,因为这1是一个常量表达式,因此可以被消除。正如上面文章中提到的,我在我测试过的任何其他 RDBMS(MySQL、Oracle、SQL Server)中找不到任何差异,并且我不希望有任何差异。