分块查询与无显著时间差



我有一个PostgreSQL查询,它在查询的FROM表中有大约500万行。若我在不使用WHERE子句的情况下运行查询以将结果保存到表中,它将永远不会完成。但是,如果添加WHERE子句并将基表ID字段限制在1m的范围内,它会很快完成,我可以在几分钟内在整个群体中执行。

有没有什么通用的想法可以解释为什么当查询没有被分块时,性能会有如此大的差异?

感谢

比较两个查询解释运行:

解释分析选择*FROM<tabname>;

解释分析选择*FROM<tabname>其中<列名>=<ID值>;

最新更新