栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

需要在5秒钟内使用休眠在mysql中插入100000行

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

需要在5秒钟内使用休眠在mysql中插入100000行

在尝试了所有可能的解决方案之后,我终于找到了一种在5秒内插入100,000行的解决方案!

我尝试过的事情:

1)使用AtomicInteger用自己生成的ID替换了hibernate/数据库的AUTOINCREMENT / GENERATED ID

2)以batch_size = 50启用batch_inserts

3)在每“ batch_size”个persist()调用之后刷新缓存

4)多线程(没有尝试过这个)

最后,有效的方法是使用 本机多插入查询, 并在一个sql插入查询中插入1000行,而不是在每个实体上使用 persist()
。为了插入100,000个实体,我创建了这样的本机查询

"INSERT into MyTable VALUES(x,x,x),(x,x,x).......(x,x,x)"
[在一个sql插入查询中插入1000行]

现在,插入100,000条记录大约需要3秒钟!因此,瓶颈是orm本身!对于批量插入,似乎唯一起作用的是本机插入查询!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/467184.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号