问题(来自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. Android WebView开发问题汇总
  2. python装饰器应用论文_Python装饰器的应用场景代码总结
  3. python table_用python解析word文件(二):table
  4. Redis的持久化 RDB AOF
  5. vsftpd系统用户配置详解
  6. 常用html元素的取值和赋值方法总结
  7. 女诗经,男楚辞
  8. Android后端工程师的要求,后端工程师的岗位职责和能力
  9. spring boot之Spring Mvc开发和常用注解说明
  10. 《Designing Data-Intensive Application》01数据系统的基石-可靠性/可扩展性/可维护性
  11. JSP SSH校园兼职信息发布平台myeclipse开发mysql数据库MVC模式java编程计算机网页设计
  12. 二叉树中序遍历的非递归算法
  13. 创业圈的钱都去哪儿了?AI算法正帮Facebook成为大赢家
  14. Ruby On Rails的傻瓜安装
  15. YUV数据格式的转换(NV12ToI420)和旋转(旋转90度)
  16. ROS基础(四)——话题消息的定义与使用
  17. windows黑客编程系列(十一):按键记录
  18. 新鲜出炉的12306防挂脚本,有需要的拿走
  19. 语义网笔记(二) RDF
  20. 武器效能评估系统软件-效能评估方法有哪些

热门文章

  1. 冰冻三尺非一日之寒-自学篇 浅谈个人学习方法
  2. leetcode-739.每日温度-单调栈
  3. 15000cd是多少流明_将lm换算为cd·sr (流明换算为cd·sr)
  4. cad化工设备绘图_auto cad在化工设备制图中的应用 ——致初学cad绘图者.ppt
  5. Linux的LILO引导程序,linux —— 启动引导程序 lilo 与 grub(示例代码)
  6. oracle minus intersect,oracle之集合操作函数---minus、union、intersect
  7. 主机访问虚拟机Web服务器
  8. CodeForces 1009D Relatively Prime Graph 贪心+枚举
  9. java跨域问题Response to preflight request doesn‘t pass access control check: No ‘Access-Control-Allow-Or
  10. 标准C语言程序设计第七版pdf,C语言程序设计 201607.pdf