十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
你用网页的方式,让人点击,服务器采集,简直是弱爆了。每个人的点击循环1000次,来个100人同时点,你要用的是普通的虚拟机就不行了。
创新互联建站专注于通榆企业网站建设,响应式网站设计,商城网站开发。通榆网站建设公司,为通榆等地区提供建站服务。全流程按需网站制作,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
最好是换种方式实现,不要通过网页进行采集。
可以非常简单的在数据库的表,创建一个采集队列,后台执行一个crontab的计划任务,去完成队列里的采集任务。
你这种方式数据入库的话,1000w条数据,要连接1000w次数据库的,性能肯定是差的,因为建立一次数据库连接是开销很大的操作
数据库的插入是支持多条的啊
insert into 表(字段) values (值),(值2),(值3)
这样就可以连接一次数据库,插入多条数据了,可以把1000w条数据分几组,这样连接数据库的次数会大大减少,性能自然就好了
?php
$arr = array(
0 = 1100,
1 = '天津市',
2 = 2210,
3 = '沈阳市'
);
$sql = '';
foreach ($arr as $k = $v) {
if ($k % 2 == 0) {
$no = $v;
continue;
} else {
$city = $v;
}
echo "INSERT INTO tablename (no, city) VALUES ($no, $city)";
}
?
结果:
INSERT INTO tablename (no, city) VALUES (1100, 天津市)
INSERT INTO tablename (no, city) VALUES (2210, 沈阳市)
sql语句已经输出的,你query下就行,按照自己的数据套吧.
上面那个回答运行不怎么对
有两种情况, 一是 php可运行的最大时间是不是有设置. 虽然你加了set_time_limit(0). 但很有可能没设置成功,因为php有安全模式, 你可以修改php.ini
2是系统资源不够, 可能是php宕了或者 数据库宕了.