浅析THINKPHP的addAll支持的最大数据量
這篇文章主要介紹了THINKPHP的addAll支持的最大數(shù)據(jù)量,需要的朋友可以參考下
Thinkphp中的Model操作有兩個(gè)方法:add()和addAll
?
復(fù)制代碼代碼如下:
?$User = M("User"); // 實(shí)例化User對(duì)象
?$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方法可以做到批量添加數(shù)據(jù)的功能,也就是MySQL的這種用法:
?
復(fù)制代碼代碼如下:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
?
數(shù)據(jù)量很多情況下盡量選擇批量插入而不是循環(huán)逐條插入,否則你的數(shù)據(jù)庫(kù)會(huì)吃不住掛掉。
不過(guò)如果你想當(dāng)然的將所有數(shù)據(jù)全部存入一個(gè)數(shù)組并進(jìn)行addAll也同樣會(huì)面臨掛掉的情況,這是為什么呢?
原因就是mysql中max_allowed_packet變量的配置限制了上傳sql語(yǔ)句的長(zhǎng)度,在mysql配置中將他配置大一點(diǎn)就行了
max_allowed_packet = 100M
同時(shí)在插入數(shù)據(jù)時(shí)也做好批量插入的長(zhǎng)度限制,畢竟你不知道什么時(shí)候數(shù)據(jù)會(huì)變成百萬(wàn)級(jí)別的。
以上就是本文的全部?jī)?nèi)容了,希望小伙伴們能夠喜歡。
來(lái)源:https://www.jb51.net/article/60683.htm
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的浅析THINKPHP的addAll支持的最大数据量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PHP中使用RabiitMQ---各项参
- 下一篇: 动态规划算法php,php算法学习之动态