公司要将有40G数据大小的数据迁移到新的数据库。同时将之前的一些表字段进行了拆分(新数据库有分表)。
目前想用java代码实现,但是有点担心oom或者速度太慢。有啥建议没
![](https://profile-avatar.csdnimg.cn/a71201393d9142afa8962796f1373776_publicclasshello.jpg!4)
关于#mysql#的问题:公司要将有40G数据大小的数据迁移到新的数据库(语言-java)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 玥轩_521 2023-06-25 23:32关注
在Java中实现大规模数据迁移需要考虑内存使用,以免发生OOM。您可以使用流式查询(streaming query)技术进行实现,即一次性查询并迁移一部分数据,然后循环进行直到全部数据迁移完成。同时,使用JDBC的批量执行功能也可以显著提高迁移速度。以下是一些建议:
分批次查询:可以通过设置查询的offset和limit参数来分批次查询并迁移数据。
批量插入:使用JDBC的批量执行功能,可以批量插入多条数据,从而减少与数据库的交互次数,提高迁移速度。
使用存储过程:可以在数据库中创建存储过程来处理数据迁移,并通过Java调用存储过程,从而将数据迁移的操作移至数据库层面,提高迁移速度。
使用缓存:将一部分数据先缓存到本地内存中,再进行插入或更新操作,可以减少与数据库的交互次数,提高迁移速度。
进行性能测试:在进行实际迁移操作之前,可以先进行性能测试,测试迁移操作的速度以及内存使用情况,从而可以更好地优化迁移操作。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 生成一个STM32F103veTX单片机程序,
- ¥15 plus模型贡献度为nan
- ¥25 使用cube ai 导入onnx模型时报错
- ¥15 关于#微信小程序#的问题:用一个网页显示所有关联的微信小程序数据,包括每个小程序的用户访问量
- ¥15 root的安卓12系统上,如何使apk获得root或者高级别的系统权限?
- ¥20 关于#matlab#的问题:如果用MATLAB函数delayseq可以对分数延时,但是延时后波形较原波形有幅度上的改变
- ¥15 使用华为ENSP软件模拟实现该实验拓扑
- ¥15 通过程序读取主板上报税口的数据
- ¥15 matlab修改为并行
- ¥20 数据分析出错了,希望有能人看看,解决一下