有業務需求需要一次循環n條資料,插入或更新資料庫時,如果單純的循環,插入/更新,會消耗太多的資料庫資源
#以下是一種簡單的解決方案
資料庫的insert是可以批次更新的,當有大量資料循環insert時,可以將資料先保留不執行插入指令,到最後一條時一次插入,例如tp的addAll()方法; (推薦學習:PHP影片教學)
資料庫的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大量資料入庫怎麼處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文比較了酸和基本數據庫模型,詳細介紹了它們的特徵和適當的用例。酸優先確定數據完整性和一致性,適合財務和電子商務應用程序,而基礎則側重於可用性和

本文討論了確保PHP文件上傳的確保,以防止諸如代碼注入之類的漏洞。它專注於文件類型驗證,安全存儲和錯誤處理以增強應用程序安全性。

本文討論了在PHP中實施API速率限制的策略,包括諸如令牌桶和漏水桶等算法,以及使用Symfony/Rate-limimiter之類的庫。它還涵蓋監視,動態調整速率限制和手

本文討論了使用password_hash和pyspasswify在PHP中使用密碼的好處。主要論點是,這些功能通過自動鹽,強大的哈希算法和SECH來增強密碼保護

本文討論了OWASP在PHP和緩解策略中的十大漏洞。關鍵問題包括注射,驗證損壞和XSS,並提供用於監視和保護PHP應用程序的推薦工具。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Dreamweaver Mac版
視覺化網頁開發工具

記事本++7.3.1
好用且免費的程式碼編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Dreamweaver CS6
視覺化網頁開發工具