首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >何时使用Hibernate缓存(第二级)?

何时使用Hibernate缓存(第二级)?
EN

Stack Overflow用户
提问于 2011-03-04 20:34:00
回答 3查看 3.2K关注 0票数 3

这是关于Hibernate Caching的一个基本问题,但在继续之前,我必须确定。我以前在小项目中使用过query缓存,但现在我参与了一个大项目,所以如下所示:

在真正的大型项目(国家)中,您对何时在Hibernate中使用Query缓存有什么建议?

注:*平台为Struts2、Spring3、Hibernate、Java6 WAS6 *

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-04 20:36:33

我认为您是指二级缓存,即跨越多个Hibernate会话的缓存。

通常,查询缓存用于大量或经常访问的查询,以减少应用程序访问数据库的频率。

我不确定您的问题是否包括实体缓存,但您肯定也应该进行调查。这个缓存包括单独的实体或它们的集合,而不管上下文(即具体的查询)。我想说它是最有益的缓存类型。

您的TPS或实体数量越大,使用这种缓存的好处就越大。当您遇到每个事务有几千个查询时,从缓存(通常是在RAM中)获取实体,而不是查询数据库和映射,可以节省大量宝贵的时间。

当你需要100%的最新(在线)结果时,要小心.

另请参阅:

改善性能在Hibernate文档。

票数 1
EN

Stack Overflow用户

发布于 2011-03-04 20:42:14

使用二级缓存时,当您的db关系r复杂时(在这种情况下,您知道每次命中db将是一项代价高昂的操作)。在这种情况下,使用缓存可以提高app的性能。

票数 2
EN

Stack Overflow用户

发布于 2011-03-04 20:53:43

我强烈推荐文章真正理解第二级和查询缓存。一般来说,缓存有很多好处,但也带来了许多复杂性,您应该有一个充分的理由进行缓存,并了解它会给您带来什么好处/风险。

请注意,仅打开查询缓存本身是不够的,您需要将事情标记为可缓存的,这里有一个解释。整篇文章都很好,并讨论了查询缓存在什么时候没有用。同样,请确保您有充分的理由在应用程序中启用查询缓存。

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

https://stackoverflow.com/questions/5198960

复制
相关文章

相似问题

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