tp3批量处理几万条数据

本文介绍了如何高效处理并批量保存几万条不同类型的券码数据。通过正则分类,针对不同数据类型使用不同表进行处理,然后整合结果并批量插入数据库,以解决逐条处理导致的时间过长问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近接到了退券任务,要求把几万条不同类型的券码值批量处理,主要的类型有三种,并保存在不同的表中,退券时要修改券码表中的状态,同时将操作过程记录下来,主要问题在于几万条数据先查询,然后分类插入数据库,一条一条处理时间太慢,所以我将数据读取到内存,然后处理,将结果整合重新入库。

8108684592429189  //券码值直接保存在券码表中,券码表也是最终要操作的表

http://t.cn/Rx2GM2q   //短链接是旧连接,数据表中存在大小写不同的数据,还要提取出来过滤一遍

http://v.51jifengou.com/t8209952787309387   //长链接存在于长链接表中,后边16位为券码值,需要截取字符串。

首先对三种数据通过正则分类,分别通过不同的表进行处理,然后将处理好的数据整合,批量插入表中。下面直接贴上代码。

contraller层:

public function voucherRefundList(){
        $type = I('post.type', '');
        if(empty($type) || empty($_FILES['source']['name'])){
            $this->error('缺少必要参数');
        }
        $kbpackageBusines = new KbPackageBusiness();
        $res = $kbpackageBusines->importVoidPackageTxt($type);
        
        if (count($res['data']) != count(array_unique($res['data']))) {
            $unique_arr = array_unique ( $res['data'] );
            // 获取重复数据的数组
            $repeat_arr = array_diff_assoc ( $res['data'], $unique_arr );
            foreach ($repeat_arr as $v=>$k){
                $res = $k;
          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值