真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php大量數(shù)據(jù)入庫(kù)的處理方法

php大量數(shù)據(jù)入庫(kù)的處理方法?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

為東山等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及東山網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、東山網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

有業(yè)務(wù)需求需要一次性循環(huán)n條數(shù)據(jù),插入或更新數(shù)據(jù)庫(kù)時(shí),如果單純的循環(huán),插入/更新,會(huì)消耗太多的數(shù)據(jù)庫(kù)資源

以下是一種簡(jiǎn)單的解決方案

數(shù)據(jù)庫(kù)的insert是可以批量更新的,當(dāng)有大量數(shù)據(jù)循環(huán)insert時(shí),可以將數(shù)據(jù)先保留不執(zhí)行插入命令,到最后一條時(shí)一次性插入,例如tp的addAll()方法; 

數(shù)據(jù)庫(kù)的update 如果使用case when 的話,也是可以批量更新的。

本文主要講關(guān)于批量insert;

生成一個(gè)訂單

正常情況的語句為:

INSERT INTO order (`goods_id`,`num`,`price`) VALUES (1,1,'10.00');
//封裝成函數(shù)
function add_order($goods_id,$num,$price){
$db->query("INSERT INTO order (`goods_id`,`num`,`price`) VALUES ($goods_id,$num,$price)");
}

假設(shè)有一個(gè)用戶,一次性將購(gòu)物車的1000個(gè)商品結(jié)算成訂單,生成1000個(gè)訂單時(shí);

for ($i=0;$i<1000;$i++){
$db->query("INSERT INTO order (`goods_id`,`num`,`price`) VALUES ($goods_id,$num,$price)");
}
//這樣的話會(huì)導(dǎo)致服務(wù)器資源占用過大,網(wǎng)站卡死
//所以,我們可以
$sql = "INSERT INTO order (`goods_id`,`num`,`price`) VALUES ";
for ($i=0;$i<1000;$i++){
    if($i==0){
    $sql.="($goods_id,$num,$price)";
    }else{
    $sql.=",($goods_id,$num,$price)";
    }
}
$db->query($sql);

大概意思就是這樣了,批量更新實(shí)現(xiàn)比較麻煩一點(diǎn),就不發(fā)了,以下是批量更新的sql執(zhí)行語句

UPDATE tiyan.dm_user_cupboard SET `res_id` = CASE `id` WHEN 1041 THEN '1' WHEN 1058 THEN '1' WHEN 1055 THEN '1'  END,`food_code` = CASE `id` WHEN 1041 THEN '68' WHEN 1058 THEN '47' WHEN 1055 THEN '49'  END,`food_name` = CASE `id` WHEN 1041 THEN '紅棗' WHEN 1058 THEN '蓮藕' WHEN 1055 THEN '洋蔥'  END,`num` = CASE `id` WHEN 1041 THEN '2' WHEN 1058 THEN '3' WHEN 1055 THEN '2'  END,`level` = CASE `id` WHEN 1041 THEN '2' WHEN 1058 THEN '2' WHEN 1055 THEN '2'  END,`update_time` = CASE `id` WHEN 1041 THEN '2017-12-09 21:40:06' WHEN 1058 THEN '2017-12-09 21:40:06' WHEN 1055 THEN '2017-12-09 21:40:06'  END WHERE id IN ( 1041,1058,1055 )

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)php大量數(shù)據(jù)入庫(kù)的處理方法大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當(dāng)前名稱:php大量數(shù)據(jù)入庫(kù)的處理方法
標(biāo)題路徑:http://weahome.cn/article/pgejgj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部