两种计数方法的总运行时间

时间:2013-07-12 12:41:29

标签: indexing runtime postgresql-9.2 sql-execution-plan

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

查询计划(使用说明分析)显示每次Postgresql正在进行Seq Scan而不是使用索引?为什么会这样?为什么在这种情况下不使用索引?

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

1 个答案:

答案 0 :(得分:0)

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

使用SELECT COUNT(primary_key)时,还必须从行中获取列primary_key,并且 - 根据SQL引擎,我认为 - 只考虑非空值。