hibernate优化策略

1. fetch size/batch size

    增加fetchSize或batchSize的值, 值越大, 操作数据库次数越少, 但是值太大会消耗过多内存, 建议不要超过100.

2. 优化hql/sql语句, 尽量不是用in查询

3. 根据结果集数量, 选择合适的遍历方法
    当结果集不是很大的时候可选择list来遍历集合, 结果集非常大的时候尽量选择iterator来遍历
    原因: list遍历的时候会先将所有结果集初始化为持久对象, 然后遍历, 结果集过大时会耗费更多时间和资源, 而iterator是在调用next方法的时候才会初始化为持久对象, 在结果集重复记录较多或只使用部分记录的时候优选iterator来遍历

4. 一对多、多对一关系中尽量使用延迟加载策略, 可以使对象在不需要的时候不加载, 减少和数据库交互次数及内存使用量

5.可用单向一对多、也可用双向一对多的时候尽量用双向, 因为双向要比单向少一次数据库操作。

6. 条件允许的情况下使用二级缓存, 并开启查询缓存(顺便减少N+1问题所造成的影响)。

7. 尽量不要使用集合对象, 如果集合小还没什么, 如果集合大, 就会对性能造成很大影响。 如果只是使用集合中的某个对象的话, 尽量将这个对象缓存, 不要每次都从集合中取, 使集合缓存占用的内存可以释放。

你可能感兴趣的:(hibernate优化策略)