Hibernate + MySQL。优化选择和加载数据的方法

时间:2013-05-04 17:05:22

标签: mysql hibernate query-optimization

我想测试如何优化使用hibernatemysql在java应用程序中选择和加载数据。

我将结果分成两组

的MySQL

  • 索引 - 肯定是
  • 存储过程 - 如果在存储过程中完成选择会有区别吗?
  • views - 如果在视图中保留选择定义会有区别吗?
  • 查询缓存 - 仅当我们第二次选择相同的选项时才会起作用吗?

休眠

  • hibernate cache - 这与查询缓存类似吗?如何配置?
  • 延迟加载 - 可以帮忙吗?

还有其他方法吗?我使用带有多个连接和聚合函数的简单查询。 我需要在“之前”和“之后”优化之间演示时间变化。

有关详细信息,我尝试阅读this,但语言对我来说很复杂。

1 个答案:

答案 0 :(得分:0)

  1. 批量提取非常重要一个集合。在这种情况下,Hibernate可以在一个SQL请求中获得许多行集合,因此它会更快。
  2. Hibernate缓存是非常好的解决方案(例如,阅读EHCache)它可以将检索到的数据存储在内存中,如果他身边没有任何变化,它可以检索它,甚至不用询问SQL引擎在那里发生了什么。
  3. 延迟加载对于一对多关联是必须的(如果没有此关联,您可以终止解决方案)。但幸运的是,它在Hibernate中默认为这种关联设置。
  4. 您还可以阅读乐观锁定,这在许多情况下比悲观锁定更快。

    最后但并非最不重要的是,您应该使用正确的交易策略,以便在不需要时不应创建新交易。