休眠二级缓存很慢

P.P*_*ter 5 java performance caching hibernate hibernate-4.x

我正在使用带有内存 ehcache 的休眠二级缓存,但速度很慢。我的意思是,不比 SQL 慢,但在 SSD 上有一个快速数据库的情况下也不是真的快。实际速度增加小于 2 倍,有时甚至无法察觉。

似乎其他人也有同样的问题,但没有得到答案:http : //forum.spring.io/forum/spring-projects/data/44353-hibernate-second-level-caching-slow-no-really-slow https ://forum.hibernate.org/viewtopic.php?t=985913

经过一些分析后,似乎 hibernate 总是 de/re-hydrate 缓存元素,而不是直接存储它们,这导致了这种糟糕的性能(与直接使用 ehcache 相比超过 100 倍)。

所以,我的问题是:

  • Hibernate 可以直接存储和恢复缓存的对象吗?
  • 有没有其他方法可以加速二级缓存?
  • 是否有一种相对简单的替代机制来实现更快的休眠缓存?

Dra*_*vic 2

hibernate可以直接存储和恢复缓存的对象吗?

不,它不能,因为这意味着并发会话将使用相同的对象实例,从而踩到彼此的脚趾。

有没有其他方法可以加快二级缓存的速度?

可能有数千种方法可以加快速度。其中大多数取决于您应用程序的具体要求。

是否有一种相对简单的替代机制可以实现更快的休眠缓存?

不,至少暂时不。