tp5插入百萬條數據處理優化


<?php
namespace app\index\controller;
use think\Controller;
use think\Db;

class Charu extends Controller
{
    public function index(){
        date_default_timezone_set("PRC");
        // 此處修改php.ini的內存,不然無法執行插入,因為數據量太大
        ini_set('memory_limit','1024M');
        echo date('Y-m-d H:i:s').'<br>';
        $start = time();
        $data = array();
        for($i=0;$i<1000000;$i++){
            array_push($data,['name'=>'測試','age'=>10]);
        }
        print_r(db('charu')->insertAll($data));
        $end = time();
        echo '<br>'.date('Y-m-d H:i:s').'<br>';
        $a = $end-$start;
        print_r('耗時分秒  '.date('i:s',$a));
    }
}

遇到下面的錯誤就表示你php.ini文件設置的內存值不夠放

 

Fatal error: Allowed memory size of 157286400 bytes exhausted (tried to allocate 32 bytes) in 

 

第一種解決方案是:在PHP文件中加入ini_set(”memory_limit”,”80M”);當然80M可以根據自己的情況改動,也不要太大哦,否則系統其它資源會遇到問題哦,其中-1為不設限。

我用的是第一種方法

第二種解決方案是:修改 php.ini配置文件,在php.ini中找到

memory_limit = 16M,將前面的分號去掉,改動值的大小,將memory_limit由8M改成16M(或更大),重啟apache服務即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM