zoukankan      html  css  js  c++  java
  • php(thinkphp)插入上万条mysql数据最快的方法!

    使用thinkphp框架

    先生成包含所有数据的数组,再使用 addAll() 方法,插入1万条数据仅需3秒钟。

    //给所有用户推送系统消息
        public function pushSystemMessage(){
            if(IS_AJAX){
                $platform = I('post.platform');//适用平台 1-wap端,2-PC端,3-APP端 $platfrom = [1,2,3]
                $pushUser = I('post.pushUser');
                $id = I('post.id');
                
                //全部用户
                if($pushUser == 'all'){
                    $allUser = M('user')->order('user_id desc')->field('user_id')->select();
                    $time = time();
                    foreach ($platform as $pkey => $pvalue) {
                        $platFormData = array(
                            'platform' => $pvalue,
                        );
                        $messageDatas = [];
                        foreach ($allUser as $key => $value) {
                            $messageData = array(
                                'user_id' => $value['user_id'],
                                'mc_id' => $id,
                                'atime' => $time,
                            );
                            $messageDatas[] = array_merge($platFormData,$messageData);
                            
                            
                        }
                        $lastId = $this->messageCenterUser->addAll($message_Datas);//这个是关键
                    }
     
                //部分用户,后期扩展
                }else{
     
                }
      
                if(!is_numeric($lastId)){
                    echo json_encode(['info'=>'系统消息推送失败!','status'=>'0']);
                }else{
                    //推送成功,把对应的系统消息变成已推送
                    $data = ['is_push'=>1];
                    M('message_c')->where('id='.$id)->save($data);
                    echo json_encode(['info'=>'推送系统消息成功!','status'=>'1']);
                }
            }else{
                $id = I('get.id');
                if($id){
                   $systemMessage = M('message_c')->where('id='.$id)->find();
                   $this->assign('systemM',$systemMessage);
                }
                $this->display('pushSystemMessage');
            }
        }
     
  • 相关阅读:
    [BZOJ]1018 堵塞的交通(SHOI2008)
    [BZOJ]1069 最大土地面积(SCOI2007)
    HDU5739:Fantasia——题解
    洛谷6186:[NOI Online 提高组]冒泡排序——题解
    洛谷4631 & UOJ415 & LOJ2586:[APIO2018] Circle selection 选圆圈——题解
    洛谷2014:[CTSC1997]选课——题解
    洛谷2758:编辑距离——题解
    洛谷4148 & BZOJ4066:简单题——题解
    洛谷4357 & BZOJ4520:[CQOI2016]K远点对——题解
    洛谷4320:道路相遇——题解
  • 原文地址:https://www.cnblogs.com/Essaycode/p/10160451.html
Copyright © 2011-2022 走看看