PostgreSQL如何缓存语句和数据?

PostgreSQL如何缓存语句和数据?,第1张

概述在Oracle中,SQL语句缓存在shared_pool中,经常选择的数据将缓存在db_cache中。 PostgreSQL做了什么?将SQL语句和数据缓存在shared_buffers中吗? 通常,只有表和索引文件的内容将被缓存在共享缓冲区中。 查询计划在某些情况下被缓存。确保这一点的最佳方法是一次PREPARE查询,然后每次执行。 查询的结果不会自动缓存。如果您重新运行相同的查询 – 即使它 在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中输入的即席查询。

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

总结

以上是内存溢出为你收集整理的PostgreSQL如何缓存语句和数据?全部内容,希望文章能够帮你解决PostgreSQL如何缓存语句和数据?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1170818.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存