Postgresql的SQL_NO_CACHE?

时间:2011-05-26 18:58:49

标签: mysql postgresql

对于MySQL关键字SQL_NO_CACHE(或SQL Server dbcc drop clean buffers)是否存在postgresql等效项,即您可以将其简单地包含在SQL语句中或作为脚本的一部分?

更新:这个问题

See and clear Postgres caches/buffers?

似乎说答案是“不”,虽然现在已经两岁了。 postgresql 9.0中是否有任何相关更改?

2 个答案:

答案 0 :(得分:8)

你所陈述的两件事并不完全等同。

MySQL的SQL_NO_CACHE不会阻止引擎使用缓存数据。这意味着查询未缓存在MySQL 查询缓存中。

查询缓存与引擎可能具有的任何光盘缓存不同,因为它缓存查询结果,而不是来自光盘的块(或来自表的行等)。所以它缓存了文本语句的结果。

使用SQL_NO_CACHE的原因是你知道你将要做一个不经常使用的查询,这会返回大量数据(因此会占用缓存中的大量空间)。

但现在建议大多数MySQL安装关闭查询缓存以为页面缓存等创建更多内存(请参阅http://dom.as/tech/query-cache-tuner/

答案 1 :(得分:2)

不需要,PostgreSQL中的缓存工作方式非常不同,并且100%可靠。