91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php大量數據入庫的處理方法

發布時間:2020-09-18 10:42:24 來源:億速云 閱讀:215 作者:小新 欄目:編程語言

php大量數據入庫的處理方法?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

有業務需求需要一次性循環n條數據,插入或更新數據庫時,如果單純的循環,插入/更新,會消耗太多的數據庫資源

以下是一種簡單的解決方案

數據庫的insert是可以批量更新的,當有大量數據循環insert時,可以將數據先保留不執行插入命令,到最后一條時一次性插入,例如tp的addAll()方法;  

數據庫的update 如果使用case when 的話,也是可以批量更新的。

本文主要講關于批量insert;

生成一個訂單

正常情況的語句為:

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

假設有一個用戶,一次性將購物車的1000個商品結算成訂單,生成1000個訂單時;

for ($i=0;$i<1000;$i++){
$db->query("INSERT INTO order (`goods_id`,`num`,`price`) VALUES ($goods_id,$num,$price)");
}
//這樣的話會導致服務器資源占用過大,網站卡死
//所以,我們可以
$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);

大概意思就是這樣了,批量更新實現比較麻煩一點,就不發了,以下是批量更新的sql執行語句

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 )

感謝各位的閱讀!看完上述內容,你們對php大量數據入庫的處理方法大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青神县| 龙南县| 兴义市| 堆龙德庆县| 墨江| 内江市| 射洪县| 铜鼓县| 景东| 西乌珠穆沁旗| 阿拉善盟| 广饶县| 千阳县| 湖口县| 岳阳县| 日土县| 尼玛县| 灵武市| 格尔木市| 通化县| 浑源县| 黄山市| 双城市| 黄冈市| 张家界市| 伽师县| 揭阳市| 铅山县| 饶阳县| 永济市| 宾川县| 临高县| 九龙城区| 宁城县| 贵定县| 星子县| 永登县| 宁南县| 满城县| 平舆县| 盐边县|