php大量数据入库的处理方法

  

php大量数据入库的处理方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

有业务需求需要一次性循环n条数据,插入或更新数据库时,如果单纯的循环,插入/更新,会消耗太多的数据库资源

<强>以下是一种简单的解决方案

<强>数据库的插入是可以批量更新的,当有大量数据循环插入时,可以将数据先保留不执行插入命,令到最后一条时一次性插入,例如tp的addAll()方法;,

<强>数据库的更新如果使用例时的话,也是可以批量更新的。

<强>本文主要讲关于批量插入;

生成一个订单

正常情况的语句为:

插入顺序(“goods_id”、“num”、“价格”)值(1 1 & # 39;10.00 & # 39;);//封装成函数   函数add_order (goods_id, num美元,美元价格){   $ db→查询(“插入顺序(“goods_id”、“num”、“价格”)值(goods_id, num美元,美元价格)“);   }

假设有一个用户,一次性将购物车的1000个商品结算成订单,生成1000个订单时,

,(i=0; i<美元;1000;美元我+ +){   $ db→查询(“插入顺序(“goods_id”、“num”、“价格”)值(goods_id, num美元,美元价格)“);   }//这样的话会导致服务器资源占用过大,网站卡死//所以,我们可以   $ sql=安迦胨承?“goods_id”、“num”、“价格”)值“;;   (我=0;i<美元;1000美元我+ +){   if ($ i==0) {   $ sql。=?goods_id, num美元,美元价格)“;   其他}{   $ sql。=?goods_id, num美元,美元价格)“;   }   }   $ db→查询(sql)美元;

大概意思就是这样了,批量更新实现比较麻烦一点,就不发了,以下是批量更新的sql执行语句

更新tiyan。dm_user_cupboard设置“res_id”=癷d”1041年然后& # 39;1 & # 39;当1058年& # 39;1 & # 39;当1055年& # 39;1 & # 39;结束,“food_code”=癷d”当1041 & # 39;68 & # 39;当1058年& # 39;47 & # 39;当1055年& # 39;49 & # 39;结束,“food_name”=癷d”当1041 & # 39;红枣& # 39;当1058年& # 39;莲藕& # 39;当1055年& # 39;洋葱& # 39;最终,“num”=癷d”1041年那么& # 39;2 & # 39;当1058年& # 39;3 & # 39;当1055年& # 39;2 & # 39;最终,“水平”=癷d”1041年那么& # 39;2 & # 39;当1058年& # 39;2 & # 39;当1055年& # 39;2 & # 39;结束,“update_time”=癷d”当1041 & # 39;2017-12-09 21:40:06& # 39;当1058年& # 39;2017-12-09 21:40:06& # 39;当1055年& # 39;2017-12-09 21:40:06& # 39;结束在id (1041、1058、1055)

php大量数据入库的处理方法