问题(来自lunacyfoundme)

我正在重建我们公司内部网,期间遇到一个与大量数据处理报告有关的前一个版本的问题。此前我曾用同步处理程序代码解决过这个问题,只是运行的很慢很慢,这导致我不得不延长最大脚本运行时间10到15分钟。有没有更好的方式来处理PHP站点里的大量数据呢?理想情况下我想在后台运行它,并且跑的越快越好。这个过程包括处理成千上万条的财务数据,我是使用Laravel来重建这个站点的。

最好受欢迎的回答(来自spin81):

人们都告诉你要使用队列和诸如此类的东西,这是一个好主意,但问题好像并没有出在PHP上面。Laravel/OOP是很厉害的,但生成你所说的报告的程序似乎不应你该有问题。对于不同的看法,我想看看你得到这些数据时使用的SQL查询。正如其他人所说,如果你的表单有成千上万行那你的报告应该不会耗费10到15分钟才完成。实际上,如果你没做错事的话可能会在一分钟内就能处理成千上万条记录,完成同样的一篇报告。

1.如果你正在做成千上万条查询,看看你能不能先只做几条查询。我之前曾使用一个PHP函数把70000条查询降为十几条查询,这样它的运行时间就从几分钟降到了几分之一秒。
 
2.在你的查询上运行EXPLAIN,看看你是不是缺少什么索引。我曾经做过一个查询,通过增加了一个索引后效率提高了4个数量级,这没有任何夸张的成分。如果你正在使用MySQL,你可以学学这个,这种“黑魔法”技能会让你和你的小伙伴惊呆的。
 
3.如果你正在做SQL查询,然后获得结果,并把很多数字弄到一起,看看你能不能使用像SUM()和AVG()之类的函数调用GROUP BY语句。跟普遍的情况下,让数据库处理尽量多的计算。我能给你的一点很重要的提示是:(至少在MySQL里是这样)布尔表达式的值为0或1,如果你很有创意的话,你可以使用SUM()和它的小伙伴们做些很让人惊讶的事情。
 
4.好了,最后来一个PHP端的提示:看看你是不是把这些同样很耗费时间的数字计算了很多遍。例如,假设1000袋土豆的成本是昂贵的计算,但你并不需要把这个成本计算500次,然后才把1000袋土豆的成本存储在一个数组或其他类似的地方,所以你不必把同样的东西翻来覆去的计算。这个技术叫做记忆术,在像你这样的报告中使用往往会带来奇迹般的效果。
 
原文: http://www.reddit.com/r/PHP/comments/2pyuy0/heavy_data_processing_in_php/

译文:http://www.php100.com/html/dujia/2014/1226/8195.html

PHP 大数据处理思路相关推荐

  1. 算法原理:大数据处理的分治思想!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:周彬莲,东北石油大学,Datawhale优秀学习者 引言 MapR ...

  2. 大数据处理——Hadoop解析(一)

    概述 这个时代被称之为大数据时代,各行各业生产的数据量呈现爆发性增长,并且基于这些爆发性增长的数据做深层次的数据挖掘.分析.因此,我们可以很容易的感觉到,在这样一个大数据的时代,我们很多做事情的方法正 ...

  3. 海量大数据处理最新面试题-1

    徐海蛟 教学用途 何谓海量大数据处理? 所谓海量大数据处理,无非就是基于海量大数据上的存储.处理.操作.何谓海量,就是数据量大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装 ...

  4. 【云端大数据实战】大数据误区、大数据处理步骤分析

    1.背景              首先感谢这次博客的主办方CSDN以及在初赛为我投票的网友们,你们的支持是Garvin前进的动力.本文思路的依据来源于本次天猫大数据竞赛长达三个月的参赛体验.博主作为 ...

  5. [转]开源大数据处理工具汇总

    查询引擎 一.Phoenix 贡献者::Salesforce 简介:这是一个Java中间层,可以让开发者在Apache HBase上执行SQL查询.Phoenix完全使用Java编写,代码位于GitH ...

  6. 【大数据处理技术】第三篇 大数据处理与分析(暂停更新)

    大数据分析与处理 第7章 MapReduce 7.1 概述 7.1.1 分布式并行编程 7.1.2 MapReduce 模型简介 7.1.3 Map 和 Reduce 函数 7.2 Mapreduce ...

  7. 《深入理解大数据:大数据处理与编程实践》一一1.2 大数据处理技术简介

    本节书摘来自华章计算机<深入理解大数据:大数据处理与编程实践>一书中的第1章,第1.2节,作者 主 编:黄宜华(南京大学)副主编:苗凯翔(英特尔公司),更多章节内容可以访问云栖社区&quo ...

  8. 【大数据处理技术】期末复习整理

    所用教材:<大数据技术原理与应用--概念.存储.处理.分析与应用(第2版)>,由厦门大学计算机科学系林子雨编著. 教材官网:http://dblab.xmu.edu.cn/post/big ...

  9. Splunklive!2018北京站激情开场:合格的大数据处理平台到底是什么样子?

    作为本届Splunk>live!2018中国用户大会的收官之战,北京站的会场流程以及议题设置更加严谨,并且下午双会场并行,以期真正让所有参会者有所收获.在IT世界,真正的基础设施是什么?一切热门 ...

  10. 全生命周期大数据处理系列

    全生命周期大数据处理系列 任何一件复杂的事物,简化它的方法就是分而治之,只是这个分法,万变不离其宗,可能会因人因事而大同小异而已.我在车联网大数据的处理实践中不断沉淀,在公司产品的迭代升级中逐步升华, ...

最新文章

  1. Python是否具有字符串“包含”子字符串方法?
  2. php 和ajax,PHP与Ajax
  3. 行人识别学习资料整理2018
  4. OpenCV分配与释放图像空间
  5. ORA-27125: unable to create shared memory segment的解决方法(转)
  6. Apache下如何禁止指定目录运行PHP脚本
  7. 宏观 量子计算一句话
  8. MySQL高级 - SQL技巧 - SQL执行顺序及正则表达式
  9. 西南大学网络教育学院计算机答案,西南大学网络与继续教育学院课程《数字信号处理》2018年春季大作业机考 答案.doc...
  10. 线性搜索或顺序搜索算法在Java中如何工作? 示例教程
  11. 如何在VB中实现ActiveX控件的IobjectSafety接口
  12. html5 自带video内存泄露_C++ 如何避免内存泄露?
  13. vb caption 换行
  14. Linux C/C++编程之(十四)文件操作相关函数
  15. 个人所得税的计算表格
  16. 网络带宽和下载速度的换算
  17. 【StringUtils】
  18. php文件上传代码dsn,数据源名称无效-使用php、PDO和DSN连接到MySQL
  19. 解析访问www.baidu.com百度的流程?
  20. mysql时间和时间戳转换工具_时间戳转换工具

热门文章

  1. 360篡改html文件打开方式,Chrome浏览器被360导航篡改怎么办
  2. Ubuntu论坛遭到入侵 用户数据泄露
  3. 扩展期权定价模型到二元期权定价
  4. 获取所有权_住房所有权经济学深入研究
  5. 2009.9.13 网摘总结
  6. 机器学习:sklearn模型指标和特征贡献度查看
  7. .gitignore java web_使.gitignore忽略除少数文件以外的所有内容
  8. 解决swift实现的websocket与后台通信问题:websocket is disconnected: masked and rev data is not currently supported
  9. 双向链表(double linked list)
  10. 本地Web服务器环境-Wampserver下载