读书人

【转】Hibernate性能“暴差”挑动的考

发布时间: 2012-10-28 09:54:44 作者: rapoo

【转】Hibernate性能“暴差”引发的考证

(转http://blog.csdn.net/jxspace/article/details/1234002)

?

?

(关于hibernate性能的测试)

?

[引用] [举报]

其实第三个测试的结论,源于楼主对MySql的INNODB,乃至对所有事务型数据库系统执行语句的原理的误解。

对于MySql INNODB、Sql Server等数据库而言,每单独执行一个SQL语句,都是一个事务。为什么每秒只剩下50条记录了?因为,在INNODB存储下,每执行一次INSERT操作,都要经历BEGIN Transaction、INSERT、COMMIT Transaction操作,也就是,第三种测试案例,实际上是提交了1000个事务。这个不用hibernate,而直接在mysql、sql server等数据库中,用
begin trans
insert 1000 times
commit
以及
insert 1000 times
执行,观察其消耗时间就知道了。注意后者的insert语句外部没有带事务。
这是数据库本身机制决定的,和hibernate还是用JDBC没有关系。同时也解释了为什么myisam下,单独执行1000个insert语句,不用事务也很快的原因,因为它根本不用事务。

?

读书人网 >软件架构设计

热点推荐