PostgreSQL如何缓存语句和数据?

前端之家收集整理的这篇文章主要介绍了PostgreSQL如何缓存语句和数据?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Oracle中,sql语句将缓存在shared_pool中,经常选择的数据将缓存在db_cache中。

Postgresql做了什么?将sql语句和数据缓存在shared_buffers中吗?

通常,只有表和索引文件内容将被缓存在共享缓冲区中。

查询计划在某些情况下被缓存。确保这一点的最佳方法是一次PREPARE查询,然后每次执行。

查询的结果不会自动缓存。如果您重新运行相同的查询 – 即使它是字母相同的信息,并且没有对数据库执行更新 – 它仍将执行整个计划。当然,它将利用已经在共享缓冲区缓存中的任何表/索引数据;所以不一定要再次读取磁盘中的所有数据。

计划缓存更新

计划缓存通常在每个会话中完成。这意味着只有使计划可以使用缓存版本的连接。其他连接必须使用自己的缓存版本。这不是一个真正的性能问题,因为与重新使用计划相关的保存几乎总是与连接成本相比是微不足道的。 (除非你的查询真的很复杂)

如果您使用PREPARE:http://www.postgresql.org/docs/current/static/sql-prepare.html,它会缓存

查询在PL / plsql函数中时,它会缓存:http://www.postgresql.org/docs/current/static/plpgsql-implementation.html#PLPGSQL-PLAN-CACHING

它不会缓存在psql中输入的即席查询

希望有人可以详细说明任何其他查询计划缓存的情况。

猜你在找的Postgre SQL相关文章