Home > Article > Backend Development > mysql用php怎么分批处理插入?比如前1000条数据处理结束后,再处理1001至2000条,然后再处理2001至3000条……,直到全部处理完毕?
当表 member中数据量不大时,可以一次性执行:
$q="select * from member'";$r=$obj_db->simplequery($q);while($a=$obj_db->fetchrow($r,DB_FETCHMODE_ASSOC)){ $id=$a[id]; $mccd=$a[cca]+$a[ccb]; $query="insert into mingxi (mid,mccd,mtime) values ('$id','$mccd','$time')"; $obj_db->simplequery($query);}
$q="select * from member'";$r=$obj_db->simplequery($q);while($a=$obj_db->fetchrow($r,DB_FETCHMODE_ASSOC)){$i++;$ep=1000;//这里假设处理完第1个1000条后再处理第二个1000条,直至处理结束? $id=$a[id]; $mccd=$a[cca]+$a[ccb]; $query="insert into mingxi (mid,mccd,mtime) values ('$id','$mccd','$time')"; $obj_db->simplequery($query);}
可以用 insert into mingxi (mid,mccd,mtime) select id, cca+ccb, time from member
最近处理一些数据 大约56万条,包括每条的读取 计算 处理 和插入
使用一个ajax方法去请求PHP页面,调一个尚未被处理的进行处理,完毕后打上已处理的标记存库,返回到js, ajax接收到返回以后(可以先输出到页面上)调用自身,再次发起请求
56万条跑了大约10万秒, 页面和程序没死过
虽然很慢,但这跟我的需求(需要把每条数据进行分析处理)有关 而且不会超时什么的.
最近处理一些数据 大约56万条,包括每条的读取 计算 处理 和插入
使用一个ajax方法去请求PHP页面,调一个尚未被处理的进行处理,完毕后打上已处理的标记存库,返回到js, ajax接收到返回以后(可以先输出到页面上)调用自身,再次发起请求
56万条跑了大约10万秒, 页面和程序没死过
虽然很慢,但这跟我的需求(需要把每条数据进行分析处理)有关 而且不会超时什么的.
最近处理一些数据 大约56万条,包括每条的读取 计算 处理 和插入
使用一个ajax方法去请求PHP页面,调一个尚未被处理的进行处理,完毕后打上已处理的标记存库,返回到js, ajax接收到返回以后(可以先输出到页面上)调用自身,再次发起请求
56万条跑了大约10万秒, 页面和程序没死过
虽然很慢,但这跟我的需求(需要把每条数据进行分析处理)有关 而且不会超时什么的.
$offs = isset($_GET['offs']) ? $_GET['offs'] : 1;$sql = "select * from member limit $offs, 1000";//做你该做的事header("Location: $_SERVER[PHP_SELF]?offs=" . ($offs+1000));
$offs = isset($_GET['offs']) ? $_GET['offs'] : 1;$sql = "select * from member limit $offs, 1000";//做你该做的事header("Location: $_SERVER[PHP_SELF]?offs=" . ($offs+1000));
同问 有解决吗