Hibernate OneToMany 单向和双向配置对数据存取性能的比较
1. 开篇说明:今天是春节长假的最后一天,春节过后博客将继续,这篇博客主要用来总结年前的研究结果,研究的主要Hibernate OneToMany 单向和双向配置对数据存取性能的问题。本文按照我测试实验的过程,最后得出结论。
?
2. 本文实验是基于之前博客EJB 学习阶段总结:JBoss下发布一个Toy企业应用,在此工程基础上,在实体中添加一对独立的一对多关系如下图:
?如上图Man和Lover是一对多关系,一个Man可以有多个Lover,为了简单我们设定Man和Lover都只有Id和name属性,我们在com.home.po中添加Entity Man和Lover的代码如下:
?
?
3 配置JBoss的日志文件,让其输出Hibernate数据库操作语句
Hibernate日志输出文件配置在JBoss_Home\server\production\conf下jboss-log4j.xml文件中,要输出Hibernate的SQL语句只需在jboss-log4j.xml的配置文件中添加Category和相应的Appender,如下:
?
?
4 一对多单向配置下插入一个Man查看日志
在Man中添加单向配置:
插入一个Man一个Man对应两个Lover后?查看日志如下:
?即完成插入100个Man,一个Man对应1000个Lover 需要时间大概是110秒?
5 一对多双向下插入Man及对应的Lover查看日志
修改实体类
Man实体如下:
?同样插入一个Man一个Man对应两个Lover后?查看日志如下:
??即完成插入100个Man,一个Man对应1000个Lover 需要时间大概是90秒?
6 结论:比较步骤4和步骤5,可以看到同样是插入100个Man,一个Man对应1000个Lover 用双向配置节约了20秒时间,即结论:一对多关系一般推荐使用双向配置
1 楼 mojunbin 2012-05-30 呵呵..好.