我对使用Postgres并不陌生,但是我对物化视图有疑问。我目前正在使用Postgres 9.6.0和PGAdmin 4。
我有一个由许多联接组成的查询,当它在PGAdmin中执行时,大约需要13秒钟。考虑到设置了正确的索引,这是正确的。
下一个方法是使用实例化视图。通过使用物化视图并设置适当的索引,我假设运行查询会更快,因为数据将被缓存/临时存储。 但是,运行查询后,看起来仍然需要13秒钟.....
除非我对实体化视图的理解不正确,否则有人可以解释为什么执行实体化视图需要花很长时间才能运行查询。可能是PGAdmin导致此问题吗?还是在Postgres中有一个设置,也许需要设置以使数据在实例化视图中持久存在?
任何建议都值得赞赏。谢谢。
答案 0 :(得分:1)
这是简单情况下的预期行为。这意味着,物化视图是对索引进行查询的结果,其性能与从其派生的索引完全相同。如果您考虑一下,这很有意义。
材料化视图不一定具有比首次访问的基础查询更好的性能。数据组装的复杂性可能很小。许多使用索引的联接的强度要比一组复杂的标准或需要例如功能处理或排序的标准的强度低得多。
在此实例中发现的是,基础查询与同一数据集的物化视图一样好。您可能需要考虑这种情况的简单视图。