根据您的经验,Hibernate的一些优秀性能调整是什么?我的意思是插入/更新和查询。
答案 0 :(得分:5)
一些特定于Hibernate的性能调优技巧:
取自http://arnosoftwaredev.blogspot.com/2011/01/hibernate-performance-tips.html
答案 1 :(得分:4)
我不确定这是一个调整,但如果你有一个你知道你需要的多对一,那么加入fetch会非常有用。例如,如果一个Person可以是一个部门的成员,并且你知道你将需要在一个特定的地方,你可以使用类似于Person p left join fetch p.department的东西,而Hibernate会做一个单独的查询对Person的一个查询,然后是Department的n个查询。
在进行大量插入/更新时,请定期调用flush而不是每次保存后或最后调用 - Hibernate将批处理这些语句并将它们一起发送到数据库,这将减少网络开销。
最后,请注意二级缓存。如果你知道id读取的大多数对象都在缓存中,它可以使事情变得非常快,但是如果指望它们存在但没有配置好,你最终会做很多事情。单行数据库查询,当您可以带回一个只有一个网络/数据库之旅的大型结果集时。
答案 2 :(得分:0)
适当地使用缓存,级联和延迟加载。
调整菜谱方案? Hibernate根据您提供的映射为您生成SQL。如果您不喜欢SQL,那么Hibernate可能不是正确的工具。
其余的性能与数据库设计有关:规范化,索引等。