淺析THINKPHP的addAll支援的最大資料量,thinkphpaddall
Thinkphp中的Model操作有兩個方法:add()和addAll
複製代碼 代碼如下:
$User = M("User"); // 執行個體化User對象
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->add($data);
$dataList[] = array('name'=>'thinkphp','email'=>'thinkphp@gamil.com');
$dataList[] = array('name'=>'onethink','email'=>'onethink@gamil.com');
$User->addAll($dataList);
addAll方法可以做到大量新增資料的功能,也就是MySQL的這種用法:
複製代碼 代碼如下:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
資料量很多情況下盡量選擇批量插入而不是迴圈逐條插入,否則你的資料庫會吃不住掛掉。
不過如果你想當然的將所有資料全部存入一個數組並進行addAll也同樣會面臨掛掉的情況,這是為什麼呢?
原因就是mysql中max_allowed_packet變數的配置限制了上傳sql語句的長度,在mysql配置中將他配置大一點就行了
max_allowed_packet = 100M
同時在插入資料時也做好批量插入的長度限制,畢竟你不知道什麼時候資料會變成百萬層級的。
以上就是本文的全部內容了,希望小夥伴們能夠喜歡。
http://www.bkjia.com/PHPjc/953156.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/953156.htmlTechArticle淺析THINKPHP的addAll支援的最大資料量,thinkphpaddall Thinkphp中的Model操作有兩個方法:add()和addAll 複製代碼 代碼如下: $User = M("User"); // 執行個體化U...