我正在开发一个基于Hibernate的数据库访问和持久层。必须使用hibernate模块的应用程序必须执行具有多个连接的非常复杂的查询。
我必须根据其他客户购买的商品推荐商品,因此很难存储缓存特定数据,因为推荐是具体的,缓存未命中率将非常高。
我已经测试了性能并且我观察到所有工作都很慢,我使用Mysql 5,Hibernate 4和C3P0连接提供程序。我应该使用基于EHCACHE的二级Hibernate缓存系统吗? Memcached是一个很好的解决方案吗?还有其他方法可以改善Hibernate的性能吗?
感谢您的建议和帮助。
答案 0 :(得分:0)
首先通过直接SQLClient工具检查查询的性能。如果它表现不好,请调整它。 现在,如果您计划仅使用缓存作为参考数据(大多数只读),EHCache是一个不错的选择。如果要对事务数据使用缓存,JBOSS树缓存是一个不错的选择。