oracle 百万级insert,Oracle高效插入大量数据

需求:数据迁移,从远端数据库查询数据写入到生产库中。

遇到问题,数据量为千万级别(具体是6千多万条记录的数据),直接使用insert into  目标表 select * from 数据源表。

因为目标表本身有上千万数据,且有主键和索引,导致写表非常慢。

执行了5,6个小时还没跑完,第二天看索性plsqldev已经卡死了。

只能强行杀掉了plsqldev的进程。

再看看数据,一条都没写进去,有点崩溃。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用MyBatis Plus来进行Oracle数据库的百万数据插入操作。下面是一个简单的示例: 1. 首先,确保你已经正确配置了MyBatis Plus和Oracle数据库的连接。 2. 创建一个实体类,用于映射数据库表的结构。例如,假设你有一个名为"User"的表,包含"id"和"name"两个字段,那么可以创建一个对应的User实体类: ```java public class User { private Long id; private String name; // 省略getter和setter方法 } ``` 3. 创建一个Mapper接口,用于定义数据库操作的方法。在该接口中,添加一个批量插入数据的方法: ```java @Mapper public interface UserMapper extends BaseMapper<User> { void batchInsert(List<User> userList); } ``` 4. 在对应的Mapper XML文件中,实现批量插入数据的SQL语句: ```xml <insert id="batchInsert" useGeneratedKeys="true" keyProperty="id"> insert into user (id, name) values <foreach collection="list" item="item" separator=","> (#{item.id}, #{item.name}) </foreach> </insert> ``` 5. 在需要进行百万数据插入操作的地方,注入UserMapper,并调用batchInsert方法即可: ```java @Autowired private UserMapper userMapper; public void insertMillionData() { List<User> userList = new ArrayList<>(); // 构造百万数据并添加到userList中 userMapper.batchInsert(userList); } ``` 通过以上步骤,你就可以使用MyBatis Plus实现Oracle数据库的百万数据插入操作了。记得根据实际情况进行调整和优化,例如使用分批次插入、开启批量操作等方式来提高性能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值