這篇文章主要介紹了THINKPHP的addAll支援的最大資料量,需要的朋友可以參考下
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
#同時在插入資料時也做好批量插入的長度限制,畢竟你不知道什麼時候資料會變成百萬等級的。
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關建議:
ThinkPHP3.2框架使用addAll()批次插入資料的方法
以上是THINKPHP的addAll支持的最大數據量的分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!