首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缓存SQL结果集

问缓存SQL结果集
EN

Stack Overflow用户
提问于 2012-07-17 13:05:53
回答 2查看 281关注 0票数 0

是否有任何数据库管理系统(Oracle、MySQL、SQLite、PostGres)提供结果集缓存?我正在尝试了解缓存SQL结果的最常用方法是什么,以便减少数据库负载。我的理解是,数据库是扩展应用程序的瓶颈,而缓存将有助于减少数据库中的负载。

如果DBMS不提供结果缓存,那么使用Memcache之类的缓存工具是不是一个好主意?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-17 13:25:07

数据库通常缓存查询的执行计划,而不是结果集本身。

一种可行的方法当然是按照您的建议执行,并为此使用Memcache。Memcache只是提供这种功能的众多工具中的一个。这个决定在很大程度上取决于你正在工作的环境,应用程序的类型(web和windows),架构等等。

例如,如果结果集不是太大,您可以将其缓存在内存中。

票数 3
EN

Stack Overflow用户

发布于 2012-07-18 18:16:31

Oracle提供了几种实现缓存的方法。这取决于您使用的Oracle数据库的版本。在旧版本中,您可以选择“在内存中固定一个表”。这有效地将任何频繁访问的表缓存到缓存中。这里需要注意的是,这可能会使用得有点过于宽松。还可以选择使用实例化视图。现在,这不是一种缓存的方法,而是具有与缓存相同的好处。Oracle 11g现在允许在数据库和会话级别缓存查询。这是通过使用提示来实现的。查找RESULT_CACHE_MODE和RESULT_CACHE。有各种配置设置,EXPLAIN PLAN可以显示是否正在从结果缓存中读取查询。我没有使用第三方工具的经验,比如Memcache(?)但是使用这类工具的危险在于,您实际上可能会绕过Oracle在其自己的RDBMS中实现的任何东西(一些有益的东西)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11516298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档