【问题标题】:Does PostgreSQL cache execution plan of a viewPostgreSQL 是否缓存视图的执行计划
【发布时间】:2014-09-16 09:14:01
【问题描述】:

PostgreSQL 是否像存储过程一样缓存视图的执行计划?

【问题讨论】:

  • 是的,我有也没有找到任何东西,所以我在这里问

标签: postgresql caching postgresql-9.3 sql-execution-plan


【解决方案1】:

没有。

视图基本上是一个宏 - 您的视图定义与针对它的查询合并,然后执行。

所以:

CREATE VIEW v1 AS SELECT * FROM customers WHERE active;
SELECT * FROM v1 WHERE name LIKE 'A%';

变成:

SELECT * FROM customers WHERE active AND name LIKE 'A%';

【讨论】:

  • 确实,缓存执行计划没什么意义。也许今天您选择了视图的每一行,而明天您只选择了一个。这些查询将需要完全不同的查询计划。
  • 如果有人能找到支持这个答案的链接,那就太好了。不同版本的 PostreSQL 可能会有所不同吗?
猜你喜欢
  • 2014-06-20
  • 1970-01-01
  • 1970-01-01
  • 2012-02-18
  • 2011-03-06
  • 2012-06-19
  • 2015-04-30
  • 2018-06-26
  • 1970-01-01
相关资源
最近更新 更多