程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 淺析THINKPHP的addAll支持的最大數據量

淺析THINKPHP的addAll支持的最大數據量

編輯:PHP綜合

Thinkphp中的Model操作有兩個方法:add()和addAll

復制代碼 代碼如下:
 $User = M("User"); // 實例化User對象
 $data['name'] = 'ThinkPHP';
 $data['email'] = '[email protected]';
 $User->add($data);
 $dataList[] = array('name'=>'thinkphp','email'=>'[email protected]');
 $dataList[] = array('name'=>'onethink','email'=>'[email protected]');
 $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

同時在插入數據時也做好批量插入的長度限制,畢竟你不知道什麼時候數據會變成百萬級別的。

以上就是本文的全部內容了,希望小伙伴們能夠喜歡。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved