在PHP中执行大型脚本而不增加允许的内存
我试图创建一个Cron作业后台进程,为数据库中的每个注册用户生成内容 现在,我正在尝试获取一个MySQL表,其中包含流程的基本设置。我想一次完成整个过程,因为它包含了过程中涉及的所有用户的设置。此外,该网站拥有超过25万用户,因此为每个用户循环该过程(获取单独的用户数据25万次)将是一个性能杀手 我正在使用PDO并通过在PHP中执行大型脚本而不增加允许的内存,php,mysql,memory-management,pdo,phalcon,Php,Mysql,Memory Management,Pdo,Phalcon,我试图创建一个Cron作业后台进程,为数据库中的每个注册用户生成内容 现在,我正在尝试获取一个MySQL表,其中包含流程的基本设置。我想一次完成整个过程,因为它包含了过程中涉及的所有用户的设置。此外,该网站拥有超过25万用户,因此为每个用户循环该过程(获取单独的用户数据25万次)将是一个性能杀手 我正在使用PDO并通过fetch()在50K行页面中使用LIMIT检索数据行。我得到这个错误 允许的内存大小134217728字节已用尽(尝试分配32字节) 每当我试图将行数据保存到数组时,脚本内存限制
fetch()
在50K行页面中使用LIMIT
检索数据行。我得到这个错误
允许的内存大小134217728字节已用尽(尝试分配32字节)
每当我试图将行数据保存到数组时,脚本内存限制~134Mb就会被超过。
每个人都建议使用ini\u set()
将允许的内存限制提高到一个更高的数字,但这只能解决更大问题的症状
从理论上讲,如果在某段时间内注册的用户数增加到这样一个数字,服务器内存无法支持我正在运行的脚本和一大块同时的用户连接,该怎么办
这就是为什么我希望在允许的内存限制内执行脚本执行时间不是一个因素,大约每月只执行一次。此外,这是一个后台过程,因此无需担心响应超时
为所有设置创建一个临时文件以释放一些内存怎么样
还有什么想法吗?当您使用
限制阅读20k行页面时会发生什么?如果您提供有关脚本的更多信息,将有助于提供一些建议。20K行页面将返回这些行。我有一个50K行的页面来最小化传出的查询计数。你有一个装满水的桶和一个可以装0.2升水的玻璃杯。你们将如何使用这个小玻璃杯将水从桶中转移到其他地方?找出类比,这就是你的解决方案。