求逢 2023-06-25 22:03 采纳率: 0%
浏览 10

关于#mysql#的问题:公司要将有40G数据大小的数据迁移到新的数据库(语言-java)

公司要将有40G数据大小的数据迁移到新的数据库。同时将之前的一些表字段进行了拆分(新数据库有分表)。
目前想用java代码实现,但是有点担心oom或者速度太慢。有啥建议没

  • 写回答

2条回答 默认 最新

  • 玥轩_521 2023-06-25 23:32
    关注

    在Java中实现大规模数据迁移需要考虑内存使用,以免发生OOM。您可以使用流式查询(streaming query)技术进行实现,即一次性查询并迁移一部分数据,然后循环进行直到全部数据迁移完成。同时,使用JDBC的批量执行功能也可以显著提高迁移速度。以下是一些建议:

    1. 分批次查询:可以通过设置查询的offset和limit参数来分批次查询并迁移数据。

    2. 批量插入:使用JDBC的批量执行功能,可以批量插入多条数据,从而减少与数据库的交互次数,提高迁移速度。

    3. 使用存储过程:可以在数据库中创建存储过程来处理数据迁移,并通过Java调用存储过程,从而将数据迁移的操作移至数据库层面,提高迁移速度。

    4. 使用缓存:将一部分数据先缓存到本地内存中,再进行插入或更新操作,可以减少与数据库的交互次数,提高迁移速度。

    5. 进行性能测试:在进行实际迁移操作之前,可以先进行性能测试,测试迁移操作的速度以及内存使用情况,从而可以更好地优化迁移操作。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月25日

悬赏问题

  • ¥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 数据分析出错了,希望有能人看看,解决一下