首頁  >  文章  >  後端開發  >  關於THINKPHP的addAll支援的最大數據量

關於THINKPHP的addAll支援的最大數據量

WBOY
WBOY原創
2016-08-08 09:30:111088瀏覽

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

<spanmicrosoft yahei font-size:><span>1</span> <span>$User</span> = M("User"); <span>//</span><span> 实例化User对象</span>
<span>2</span> <span>$data</span>['name'] = 'ThinkPHP'<span>;
</span><span>3</span> <span>$data</span>['email'] = 'ThinkPHP@gmail.com'<span>;
</span><span>4</span> <span>$User</span>->add(<span>$data</span><span>);
</span><span>5</span> 
<span>6</span> <span>$dataList</span>[] = <span>array</span>('name'=>'thinkphp','email'=>'thinkphp@gamil.com'<span>);
</span><span>7</span> <span>$dataList</span>[] = <span>array</span>('name'=>'onethink','email'=>'onethink@gamil.com'<span>);
</span><span>8</span> <span>$User</span>->addAll(<span>$dataList</span>);</spanmicrosoft>

addAll方法可以做到大量新增資料的功能,也就是MySQL的這種用法:

<spanmicrosoft yahei font-size:>INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);</spanmicrosoft>

資料量很多情況下盡量選擇批量插入而不是循環逐條插入,否則你的資料庫會吃不住掛掉。

不過如果你想當然的將所有數據全部存入一個數組並進行addAll也同樣會面臨掛掉的情況,這是為什麼呢?

原因就是mysqlmax_allowed_pa​​cket變數的配置限制了上傳sql語句的長度,在mysql配置中將他配置大一點就行了

<spanmicrosoft yahei font-size:>max_allowed_packet = 100M</spanmicrosoft>


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

以上就介紹了關於THINKPHP的addAll支援的最大數據量,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn