2011-04-05 41 views
1

我想知道Postgres在mySQL中是否具有类似SQL_CACHE的功能。例如在mySQL中,我可以做一个查询,如“SELECT SQL_CACHE Pr​​oduct_ID,Product_Name,Product_Sku FROM Products”,我想知道我是否可以在Postgres中做类似的事情。Postgres +从缓存中选择查询

回答

2

PostgreSQL自动将最近访问过的数据缓存在内存中,具体取决于您的shared_buffers配置参数。因为Postgres已经在管理元组缓存方面做得很好,所以实际上不需要SQL_CACHE特性。

+3

这不完全正确。 'effective_cache_size'不影响Postgre管理的缓存。它只给计划者一个暗示,数据已经在文件系统缓存中。价值越大,随机寻求的价格越便宜。 – 2011-04-05 20:33:37

+1

错误的参数是PostgreSQL具有的唯一缓存,它是shared_buffers。 – 2011-04-06 05:45:19

+0

@Frank。这就是我输入得太快的原因。谢谢 :-) – Kenaniah 2011-04-06 19:32:37

0

MySQLSQL_CACHE没有按从缓存中进行选择,这取决于query_cache_type,出现这种情况:

  • 1或ON:缓存所有可缓存查询结果除了那些与SELECT SQL_NO_CACHE开始。
  • 2或DEMAND:缓存结果仅适用于以SELECT SQL_CACHE开头的可缓存查询。

在本质上,使用SQL_NO_CACHE与任何其他设置的1SQL_CACHE与任何其他设置2无意义

如果这仍然是你在PostgreSQL中所需要的:不知道,但我不得不说明这一点。