php+ajax导入大数据时产生的问题处理_php实例

遇到的问题就从先到后的一一说吧。

问题1 按照我最初的想法,先上传文件再读取文件。这里问题就来了,当文件较大的时候上传较慢,导致客户看到的操作一直处于等待状态,不人性化。

处理办法:我是这样做的,大神有更好的办法,求介绍。我先把文件上传上去,然后把文件存到一个特定的文件夹就叫 import吧   ,然后返回一个这个文件名字。这样就确保了文件是上传成功的。并且我可以在他返回名字的这一步用js  给客户一个提示。然后就是ajax去请求php读取文件,插入数据库。可是问题来了。

问题2 当我用ajax去请求php读取文件并插入数据库的时候,遇到一个问题,就是ajax请求总是在1min的时候,断掉。我一想 ,这应该是php的最大执行时间max_execution_time的原因吧,结果我修改为300秒。还是这样,那我就认为会不会是apache的 最大get时间max_input_time呢,我就在代码加一个 ini_set  结果,用ini_get   查看max_input_time,用ini_set设置无效,还是60秒,在网上查了很多资料,还是不知道为啥。有大神知道的,请给我回复下。菜鸟先谢过了。那没办法,我只能去服务器把php.ini配置修改了。经理说不让修改的,为了测试,偷偷改了--最后修改回来了。修改之后,测试,还是不行。还是到一分钟 就执行超时。真的很纳闷。不知道什么原因。求指教。那没办法。

这种办法行不通了,对一个5m的文件只能分行读取了。然后就是对代码的一通修改,分行读取是这样操作的,先ajax请求,然后每次读取2000条  然后对这2000条数据进行处理,插入数据库(文章最后介绍一个好用的分行读取函数)。然后每次ajax执行完,返回一个状态符,和本次读取到的行数,然后下次接着读。知道最后读取完。这中间还遇到一个问题:就是当我对每一行数据进行查重的时候遇到的,是这样的,我对得到的内容进行循环,然后查一下每行是否存在,当我判断$count是否大于0 的时候,当已存在的时候,我用continue,执行下一次循环。但是当我在导入10000条的时候,总是在8000条的时候报错说 服务器内部错误。很闷,不解问什么,结果只能用if  else代替了。纳闷。一个小提醒:插入数据库的时候 不要一条一条的插入,最好这样 inset  into  aaa(`xx`,`xxx`)values('111','111'),('222','222')。这样 速度会快很多。

行号读取函数,SplFileObject这个类库真的很好用推荐。有知道我的问题的,求大神指教。

复制代码 代码如下:

function getFileLines($filename, $startLine, $endLine, $method = 'rb'){
      $content = array();
      $filename = DATA_PATH.DS.'import' . DS . $filename;
      $count = $endLine - $startLine;
      $fp = new SplFileObject($filename, $method);
      $fp->seek($startLine); // 转到第N行, seek方法参数从0开始计数
      for ($ii = 0; $ii <= $count; ++$ii) {
            $content[] = $fp->current(); // current()获取当前行内容
            $fp->next(); // 下一行
      }
      return array_filter($content); // array_filter过滤:false,null,''
}

时间: 2024-09-19 08:17:55

php+ajax导入大数据时产生的问题处理_php实例的相关文章

jquery ajax 导入json数据进行修改操作

问题描述 jquery ajax 导入json数据进行修改操作 json数据 test.txt [ {"XH":1,"YWName":"业务1","SName":"系统1","QDName":"渠道1","HJNumber":5}, {"XH":2,"YWName":"业务2","

当APP应用市场结合大数据时,将是一场风暴

01月21日,和讯博主于斌发表了题为<当APP应用市场结合大数据时,将是一场风暴>的博客,以下是博客全文: 正如马云所说,"很多人还没搞清楚什么是PC互联网,移动互联来了,我们还没搞清楚移动互联的时候,大数据时代又来了." 在过去的2015年,大数据时代的气息浓厚,步伐矫健.利用大数据的分析和预测,电商们正在为用户进行深度画像开展精准营销,让15分钟送货上门成为现实;结合大数据分析,互联网金融企业捕捉来自大众点评.豆瓣等社交网络有效信息,多维度分析借款客户信用情况,提高自身

jQuery Ajax 加载数据时异步显示加载动画_jquery

 ajax加载后台数据就不说的那么细了. 看下面代码首先前台上放置代码 <div id="loadgif" style="width:66px;height:66px;position:absolute;top:50%;left:50%;"> <img alt="加载中..." src="../../Images/loading1.gif"/> </div> 在js脚本文件中首先把这个图片动

大数据时代征信业发展探析

促进征信业在大数据背景下的跨越式发展应建立符合大数据的征信法律制度和业务规则体系;加强征信产品创新;提高大数据技术处理能力;健全大数据信息共享机制;提升征信监督管理水平;建立符合大数据的信息安全保护机制. 近年来,随着互联网技术的发展,大数据越来越受到关注,其应用逐步渗透至多个行业,开启了全新的数据时代.数据是征信业务开展的基础资料,征信活动主要是围绕数据进行采集.整理.保存.加工,并最终向信息使用者提供.大数据不仅为征信业发展提供了极为丰富的数据信息资源,也改变了征信产品设计和生产理念,成为了

[大数据之Spark]——Actions算子操作入门实例

Actions reduce(func) Aggregate the elements of the dataset using a function func (which takes two arguments and returns one). The function should be commutative and associative so that it can be computed correctly in parallel. 这个方法会传入两个参数,计算这两个参数返回一个

[大数据之Spark]——Transformations转换入门经典实例

Spark相比于Mapreduce的一大优势就是提供了很多的方法,可以直接使用:另一个优势就是执行速度快,这要得益于DAG的调度,想要理解这个调度规则,还要理解函数之间的依赖关系. 本篇就着重描述下Spark提供的Transformations方法. 依赖关系 宽依赖和窄依赖 窄依赖(narrow dependencies) 窄依赖是指父RDD仅仅被一个子RDD所使用,子RDD的每个分区依赖于常数个父分区(O(1),与数据规模无关). 输入输出一对一的算子,且结果RDD的分区结构不变.主要是ma

Memcached缓存大数据时对服务器内存、CPU的影响及其对硬件的配置需求

最近公司在进行缓存框架方面的调研,我主要对Memcached在缓存大数据量情况下对系统硬件的影响和需求做了调研,以下是一些测试数据和调研结果:  Memcached缓存不同数据量测试情况:           一.测试环境配置信息    1. 缓存服务器配置信息:一共4台 ,三台是公司服务器,一台是本机         node1: 单核 1G内存         node2: 单核 1G内存         node3: 单核 1G内存         node4: 4核  8G内存    2

胡传平:“大数据”时代考问网络安全

4月29日是首都网络安全人.网络安全再次成为大家关注的焦点和热议的话题. 实际上在4月7日,网络安全正面临着一场大难.就在这天,一个代号叫"心脏出血"的重大互联网安全漏洞被国外黑客曝光.这次发生漏洞的是国际著名安全协议OpenSSL,目前世界上大概有三分之二的网络服务器正在使用,包括购物.网银.社交.邮箱等. 据统计,在4月7日至8日两天时间,共计约2亿网民访问了存在漏洞的网站.也就是说,他们登录服务器时显示的用户名.密码和信用卡等信息,很有可能会被人盗取. 截至4月10日,在中国3万

家电协会朱军:在处理大数据时往往力不从心

[赛迪网讯]3月31日消息,日前,中国家电协会副秘书长朱军做客赛迪网直播间,针对目前消费者所关心http://www.aliyun.com/zixun/aggregation/14294.html">的大数据现状及发展前景提出了自己的观点和看法. 朱军表示,大数据实际上是信息化时代,信息化膨胀以后出现的局面.协会在处理大数据时也面临着诸多问题,往往会力不从心. 中国家电协会副秘书长朱军与赛迪网记者合影 大数据是海量数据的集合,这些海量数据规模巨大,难以用现有数据管理工具或传统数据处理程序进