求 php 循环执行大量数据 解决办法。

用for循环的时候从1循环到100万都很快现在关键是不是这么简单的1-100万循环是每次循环都需要请求一个url来采集上面的内容。最小循环是500-1000次最大的循环是... 用for循环的时候 从1循环到100万 都很快
现在关键是 不是这么简单的 1-100万循环
是每次循环 都需要请求一个 url 来采集 上面的内容。
最小循环是500-1000次
最大的循环是5000-10000次
循环的时候 又不是一个人循环 有可能是 100个人 同时点击 循环采集。

求一个性能优化方案!
展开
 我来答
xiongchuan86
2013-03-24 · 超过21用户采纳过TA的回答
知道答主
回答量:180
采纳率:0%
帮助的人:138万
展开全部
你用网页的方式,让人点击,服务器采集,简直是弱爆了。每个人的点击循环1000次,来个100人同时点,你要用的是普通的虚拟机就不行了。
最好是换种方式实现,不要通过网页进行采集。
可以非常简单的在数据库的表,创建一个采集队列,后台执行一个crontab的计划任务,去完成队列里的采集任务。
小花椒Daddy
2015-08-06 · 超过29用户采纳过TA的回答
知道答主
回答量:59
采纳率:50%
帮助的人:49.8万
展开全部

分页处理:

1.如果是查询的数据库 那么就加 limit

2.如果是数组,就采用数组分页;

    参考

$page = (int)$_GET['page'];
$page = $page?$page :1;
$limit = 100;
$count = count($excelData);
if ($page*$limit >$count) {
    exit('执行完成');
}
$excelData = array_slice($excelData, ($page-1)*$limit ,100);

if($excelData){
    foreach($excelData as $k=>$v){
        ...
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小小幽魂
2013-03-24 · TA获得超过1469个赞
知道小有建树答主
回答量:751
采纳率:100%
帮助的人:687万
展开全部
配合 AJAX 制作。

PHP 每次请求只采集一个 URL
在浏览器那边用 JS 循环。

反正你采集这么多数据,用户也要等半天。不如用 AJAX 采集到一条看一条。
这样一来,顶多就是像聊天室刷数据。。服务器表示鸭梨不大。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
热血CN
2019-05-10
知道答主
回答量:20
采纳率:100%
帮助的人:3.8万
展开全部
你这是做小说采集的吧?
现在好像很多这种站,原理都大同小异。

我这有一个案例,你可以以参考下:https://www.biquts.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
proaholic
2013-03-24 · TA获得超过117个赞
知道答主
回答量:89
采纳率:0%
帮助的人:74.9万
展开全部
是个缓存不久好了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式