首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Hibernate的二级缓存有什么缺点?

使用Hibernate的二级缓存有什么缺点?
EN

Stack Overflow用户
提问于 2013-01-18 07:53:01
回答 2查看 5K关注 0票数 8

我看到很多文章说,在Hibernate中使用二级缓存将提高性能,但没有太多关于使用它的缺点的文章。我不想把二级缓存看作是神奇的“在这里启用免费的更好的性能!”按钮。谁能描述一下使用二级缓存的缺点,好让我知道使用它的含义?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-18 08:57:21

缺点:

  1. 群集部署将需要一种使缓存保持同步的方法。我们已经使用了一个简单的EhCache和我们自己的失效例程,利用JGroups (高努力-建议不要使用它)并使用Infinispan.如果使用infinispan路由,则需要启用XA事务。这将需要XA驱动程序和事务管理器,要么由你的应用服务器提供,要么你将不得不使用Atomikos.
  2. There是边缘情况(例如,多对一或一对多情况),其中实体的更新/删除没有正确地反映在集合中。一个例子:http://www.tikalk.com/java/forums/hibernate-second-level-cache-collection-eviction)
票数 5
EN

Stack Overflow用户

发布于 2013-01-18 11:34:23

另一个答案中引用的观点似乎是有效的。然而,对我来说,主要的缺点是其他的东西:

  1. 性能下降。是的,拥有缓存并不一定要给你带来更好的性能。Hibernate需要做额外的工作来存储和更新缓存。如果缓存的实体经常更改,而您不经常查询它们,则启用缓存只会增加不必要的额外负担。
  2. 缓存无效。如果您的应用程序具有通过不通过更新实体的方式执行更新的逻辑(例如,直接SQL更新、通过其他应用程序的更新、批量HQL更新(最后一种情况我不是很确定:P ) ),Hibernate将不会知道实体被更改。因此,当您执行查询时,您仍将在更新之前获得图像。
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14390275

复制
相关文章

相似问题

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