0
我正在开发基于Hibernate的数据库访问和持久层。必须使用hibernate模块的应用程序必须执行具有多个连接的非常复杂的查询。Hibernate优化,使用二级缓存?
我必须根据其他客户购买的物品推荐物品,因此很难将其存储在缓存特定的数据中,因为推荐是具体的,并且缓存未命中的百分比将非常高。
我测试了性能,我观察到所有工作都很慢,我使用Mysql 5,Hibernate 4和C3P0连接提供程序。我应该使用基于EHCACHE的二级Hibernate缓存系统吗? Memcached是一个很好的解决方案吗?有没有其他方法可以提高Hibernate的性能?
感谢您的建议和帮助。
我尽可能地优化了查询。如果我在Mysql Workbench中测试查询,它运行速度慢,但不像Hibernate那样慢。问题在于缓存推荐并不容易。 – amartin 2013-03-25 09:01:31
使用explain选项作为您的选择查询的前缀,以查看和分析mysql工作台的执行计划。例如:解释select * from user where id = 5;你看到使用索引列的访问吗? – maggu 2013-03-25 09:04:58
是的,我不知道这个Mysql功能。谢谢。但我不是Mysql专家,我不知道应该看哪些参数来改进查询。我可以在额外的专栏中看到正在使用的索引。 – amartin 2013-03-25 09:47:57