文档章节

hibernate优化策略

xiaoqqq
 xiaoqqq
发布于 2014/08/24 23:19
字数 422
阅读 15
收藏 0
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. 尽量不要使用集合对象, 如果集合小还没什么, 如果集合大, 就会对性能造成很大影响。 如果只是使用集合中的某个对象的话, 尽量将这个对象缓存, 不要每次都从集合中取, 使集合缓存占用的内存可以释放。

© 著作权归作者所有

xiaoqqq
粉丝 9
博文 50
码字总数 28582
作品 0
渝中
程序员
私信 提问
Java面试题之Hibernate

1.简书一下Hibernated的开发流程 第一步:加载Hibernate的配置文件,读取配置文件的参数, 第二步:创建SessionFactory会话工厂(内部有连接池) 第三步:打开Session 连接 第四步:开启事务...

年轻诠释我们的梦想_705b
2018/06/05
0
0
MyBatis和Hibernate相比,优势在哪里?

1、开发对比开发速度 hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。 开发社区 Hibernate ...

park
2017/11/28
0
0
MyBatis和Hibernate优劣势对比

1、开发对比 开发速度 Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。 开发社区 Hibernat...

黎嘉诚
2016/08/05
88
0
MyBatis和Hibernate相比,优势在哪里?

1、开发对比开发速度 Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。 开发社区 Hibernate ...

vshcxl
2016/03/28
41
0
MyBatis和Hibernate相比,优势在哪里?

1、开发对比开发速度 hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。 开发社区 Hibernate ...

qq5923dd411b8fa
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【JAVA基础☞内部存储和GC】Java方法区和永久代

Java方法区和永久代 这里只讨论HotSpot虚拟机,这也是目前使用的最多的JVM。Sun JDK7 HotSpot虚拟机的内存模型如下图所示: 1、什么是方法区 在Java虚拟机中,方法区是可供各线程共享的运行时...

卯金刀GG
4分钟前
0
0
Spring Boot Actuator

编者注 由于开发一个对性能要求很强的后台应用,突然发现部署到aliyun发生问题,而普通笔记本没有任何问题,则需要持续一段时间的监控定位函数执行时间,分析过程,并添加健康检查的可视化内...

抢小孩糖吃
5分钟前
0
0
Zabbix监控ActiveMQ

当我们在线上使用了ActiveMQ 后,我们需要对一些参数进行监控,比如 消息是否有阻塞,哪个消息队列阻塞了,总的消息数是多少等等。下面我们就通过 Zabbix 结合 Python 脚本来实现对 ActiveMQ...

SEOwhywhy
17分钟前
0
0
非webpack require.js + vue + vueRouter + iView 实现按需加载

适合一个人开发的时候,在整个php框架下,又想单页,又可以直接后端assign变量穿透到模板。又不想写接口搞前后分离脚手架一大堆npm 包, 在php模板下 引入require.js <!DOCTYPE html><html...

一箭落旄头
32分钟前
7
0
新特性解读 | MySQL 8.0 窗口函数详解

原创作者: 杨涛涛 背景 一直以来,MySQL 只有针对聚合函数的汇总类功能,比如MAX, AVG 等,没有从 SQL 层针对聚合类每组展开处理的功能。不过 MySQL 开放了 UDF 接口,可以用 C 来自己写UDF...

爱可生
38分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部