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个小时。

    截图:




  • 相关阅读:
    文字搬运工
    软件测试的左移方法(译)
    开启iOS自动化测试
    当一个数不是数字时:随机测试生成器的好处(译)
    Appium进行iOS自动化测试时遇到的问题及解决办法
    adb.exe 已停止工作的解决办法
    工具书
    安卓appium自动化测试
    Loadrunner安装使用入门
    使用Fiddler进行APP弱网测试
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3235338.html
Copyright © 2011-2022 走看看