php批量插入数据实测200万数据只需700多秒

注意:本次测试用的thinkphp6做的测试,勿喷!!!

    public function index()
    {

        $t1 = microtime(true);
        $content = [
            '2021年07月出生,家在河北',
            '2021年07月出生,家在河北',
            '2021年07月出生,家在陕西,幼时与张三结下娃娃亲,待娃娃长大以后结为夫妻',
        ];
        $total=2000000;
        $num=10000;//每次执行的数量
        $fornumber =ceil($total/$num) ;//分多少次处理
        echo "事务已开启.........<br>";
        sleep(1);
        ob_flush();
        echo 'Begin ...<br />';
        echo '正在批量更新,请耐心等待...<br />';
        echo "事务正在处理.........<br />";
        echo "共有".$total."条数据<br />";
        echo "每组".$num."条数据<br />";
        echo "正在执行第<span id='c'>0</span>组/共有".$fornumber."组</br>";

        $index=0;
        for ($i=1;$i<=$fornumber;$i++)
        {
            echo '<script>document.getElementById("c").innerHTML = "'.$i.'";</script>';
            echo str_pad('',4096)."\n";
            ob_flush();
            flush();
            sleep(1);
            $arr = array();
            for($j = $index; $j < $index+$num;$j++)
            {
                $arr[] =[
                    'name'=>generate_name()['xm'],
                    'content' => $content[array_rand($content)]
                ];
            }
            $this->insert($arr,$i);
            $index += $num;
        }

        echo "执行完毕<br />";
        $t2 = microtime(true);
        echo '共耗时'.round($t2-$t1,3).'秒<br>';
        echo '共消耗内存: ' . memory_get_usage() . '<br />';
    }
    
    public function  insert($arr,$i)
    {
       $user=new  UserModel();

       $result=$user->saveAll($arr);

       if($result) {
           $map = true;
       }
       else {
           $map = false;
       }
      //  $condition=[];
       if($map==true) {
            echo '第'.$i.'组成功<br/>';
        }else
        {
            echo '第'.$i.'组失败<br/>';
        }
    }

 看效果:

事务已开启.........
Begin ...
正在批量更新,请耐心等待...
共有2000000条数据
事务正在处理.........
正在执行第200组/共有200组
第1组成功
第2组成功
第3组成功
第4组成功
第5组成功
第6组成功
第7组成功
第8组成功
第9组成功
第10组成功
第11组成功
第12组成功
第13组成功
第14组成功
第15组成功
第16组成功
第17组成功
第18组成功
第19组成功
第20组成功
第21组成功
第22组成功
第23组成功
第24组成功
第25组成功
第26组成功
第27组成功
第28组成功
第29组成功
第30组成功
第31组成功
第32组成功
第33组成功
第34组成功
第35组成功
第36组成功
第37组成功
第38组成功
第39组成功
第40组成功
第41组成功
第42组成功
第43组成功
第44组成功
第45组成功
第46组成功
第47组成功
第48组成功
第49组成功
第50组成功
第51组成功
第52组成功
第53组成功
第54组成功
第55组成功
第56组成功
第57组成功
第58组成功
第59组成功
第60组成功
第61组成功
第62组成功
第63组成功
第64组成功
第65组成功
第66组成功
第67组成功
第68组成功
第69组成功
第70组成功
第71组成功
第72组成功
第73组成功
第74组成功
第75组成功
第76组成功
第77组成功
第78组成功
第79组成功
第80组成功
第81组成功
第82组成功
第83组成功
第84组成功
第85组成功
第86组成功
第87组成功
第88组成功
第89组成功
第90组成功
第91组成功
第92组成功
第93组成功
第94组成功
第95组成功
第96组成功
第97组成功
第98组成功
第99组成功
第100组成功
第101组成功
第102组成功
第103组成功
第104组成功
第105组成功
第106组成功
第107组成功
第108组成功
第109组成功
第110组成功
第111组成功
第112组成功
第113组成功
第114组成功
第115组成功
第116组成功
第117组成功
第118组成功
第119组成功
第120组成功
第121组成功
第122组成功
第123组成功
第124组成功
第125组成功
第126组成功
第127组成功
第128组成功
第129组成功
第130组成功
第131组成功
第132组成功
第133组成功
第134组成功
第135组成功
第136组成功
第137组成功
第138组成功
第139组成功
第140组成功
第141组成功
第142组成功
第143组成功
第144组成功
第145组成功
第146组成功
第147组成功
第148组成功
第149组成功
第150组成功
第151组成功
第152组成功
第153组成功
第154组成功
第155组成功
第156组成功
第157组成功
第158组成功
第159组成功
第160组成功
第161组成功
第162组成功
第163组成功
第164组成功
第165组成功
第166组成功
第167组成功
第168组成功
第169组成功
第170组成功
第171组成功
第172组成功
第173组成功
第174组成功
第175组成功
第176组成功
第177组成功
第178组成功
第179组成功
第180组成功
第181组成功
第182组成功
第183组成功
第184组成功
第185组成功
第186组成功
第187组成功
第188组成功
第189组成功
第190组成功
第191组成功
第192组成功
第193组成功
第194组成功
第195组成功
第196组成功
第197组成功
第198组成功
第199组成功
第200组成功
执行完毕
共耗时768.128秒

 

数据库:

 

 

 

  

posted @ 2021-12-18 17:58  浪、子  阅读(519)  评论(0编辑  收藏  举报