mysql 批量录入 id_Mysql 批量插入数据 提前获得主键id

本文介绍了在面临大量数据插入需求时,如何通过MySQL的批量插入优化性能,以及如何在批量插入后获取主键ID进行后续逻辑处理。作者分享了三种批量插入方式,包括循环插入、事务提交和SQL语句拼接,并选择了第三种方式进行实现,显著提高了插入速度。同时,为了解决获取插入数据主键ID的问题,采取了预估最大ID并自增的方法,避免了循环插入的低效和事务提交的复杂性。
摘要由CSDN通过智能技术生成

最近在做分销功能的按组分销模块时,一次需要插入一万多条数据,同时还需要获得插入数据的主键 id ,用于后续逻辑的使用。

最初我是通过循环,一条一条的插入,然后一边插入,一边执行数据更新。这种方式,慢到自己都不能忍,更何况是用户了,于是想到了使用批量插入的方式进行优化。

在网上查了查,批量插入主要有三种方式:

1、循环插入(这种方式就是我开篇介绍的方式,慢到不能忍);

2、使用事务提交(这种方式我觉得操作起来很麻烦,没有采用);

3、将SQL语句进行拼接,使用

insert into table () values  (),(),(),()然后再一次性插入。如果字符串太长,则需要配置下MYSQL,在

mysql 命令行中运行 :set global max_allowed_packet =

2*1024*1024*10;(我采用了这种方式,速度非常快)

$insetSql = "INSERT INTO hotel_room_fenxiao (`id`,`room_id`,`pfs_id`,`add_id`,`fxs_id`,`add_price`,`is_effect`) VALUES ";

foreach ($insert_arr as $tmpInserInfo){

$insetSql .= "({$tmpInserInfo['id']},{$tmpInserInfo['room_id']},{$tmpInserInfo[

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值