【转】Hibernate性能“暴差”引发的考证
(转http://blog.csdn.net/jxspace/article/details/1234002)
?
?
(关于hibernate性能的测试)
?
[引用] [举报]
对于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语句,不用事务也很快的原因,因为它根本不用事务。
?