0

我想知道为什么 count(*) 的总运行时间小于同一张表的 count(primary_key) ?

查询计划(使用解释分析)显示每次 Postgresql 都在做 Seq Scan 而不是使用索引?为什么会这样?为什么在这种情况下不使用索引?

编辑:count(1)没有任何区别。

4

1 回答 1

0

当您使用SELECT COUNT(*)or SELECT COUNT()时,您只是计算表中的行数,而忽略列数据。

当您使用 时SELECT COUNT(primary_key)primary_key还必须从行中获取列,并且 - 我认为取决于 SQL 引擎 - 只有非空值才会被计算在内。

于 2013-07-12T12:57:23.823 回答