zoukankan      html  css  js  c++  java
  • 使用hibernate在5秒内插入11万条数据,你觉得可能吗?

    需求是这样的,需要查询某几个表的数据,然后插入到另外一个表。

    一看到需求,很多人都会用hibernate去把这些数据都查询出来,然后放到list中,

    然后再用for循环之类的进行遍历,一条一条的取出数据对对象进行赋值,然后在调用dao层的save 方法进行保存对象。

    hibernate保存一条数据是在35毫秒左右,咱们来计算下时间:

    35*110000=3850000 毫秒

    3850000/1000=3850秒

    3850/60=64.1666666分钟,

    如果咱们使用hibernate的话,那么要执行一个多小时,这根本就无法体现出效率了,而且这么大的数据,服务器的压力也不小。

    好啦,上面说了这么多,咱们来看看实际的操作。

    测试的数据库是MSSQL,MYSQL速度也是差不多的


    我建立了一个表,表里有115546条数据。11万


    然后我又建了了一个表,两个表结构完全不同。


    我这里是直接使用sql语句进行数据插入,看代码:

    insert into test(name) select s.address from Student s
    

    使用了insert into select 语句,其实也就是相当于复制而已。

    这时候,咱们就可以用hibernate来创建查询,执行改条sql语句了

    这样的效率非常的高,我插入11万条数据,只用了5秒钟。而上面的方法却用时超过1个小时。

    截图:




  • 相关阅读:
    php设计模式-简单依赖注入容器的闭包方式实现
    php设计模式-简单依赖注入容器
    php设计模式-简单依赖注入
    php设计模式-数据对象映射
    php设计模式-迭代器
    php设计模式-接口工厂模式
    可变数量参数*args 关键字可变数量参数**kwargs
    python文本文件读写
    excel文件处理
    wxPython 使用总结
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3235338.html
Copyright © 2011-2022 走看看