您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

在php中怎么解决大量数据处理的问题

2025/9/10 23:55:11发布23次查看
问题(来自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袋土豆的成本存储在一个数组或其他类似的地方,所以你不必把同样的东西翻来覆去的计算。这个技术叫做记忆术,在像你这样的报告中使用往往会带来奇迹般的效果。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product