我正在使用内存中的ehcache进行Hibernate二级缓存,但速度较慢。我的意思是,与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总是对缓存元素进行反序列化和序列化,而不是直接存储它们,这导致了这种糟糕的性能(与直接使用ehcache相比,性能下降了100倍以上)。
所以,我的问题是:
- Hibernate是否可以直接存储和恢复缓存对象? - 是否有其他方法可以加速二级缓存? - 是否有一个相对简单的替代机制来更快地缓存Hibernate?
看起来其他人也有同样的问题,但没有得到答案: 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总是对缓存元素进行反序列化和序列化,而不是直接存储它们,这导致了这种糟糕的性能(与直接使用ehcache相比,性能下降了100倍以上)。
所以,我的问题是:
- Hibernate是否可以直接存储和恢复缓存对象? - 是否有其他方法可以加速二级缓存? - 是否有一个相对简单的替代机制来更快地缓存Hibernate?