我有 200,000 行需要添加到数据库。
我设置了maximum_excution_time = 4000
,我仍然收到此错误。
PHP中maximum_execution_time的最大值是多少?
我想彻底取消这个限制并尽可能将其设置为无限制。
答案 0 :(得分:4)
我知道在0
中使用set_time_limit
的值会告诉PHP在脚本/程序运行完毕之前不会超时。我非常确定在maximum_excution_time
中设置相同的值会产生相同的效果。
那就是说:有些托管公司正在运行其他系统来寻找任何类型的长时间运行进程(PHP,Ruby,Perl,随机程序等),并且如果它们运行时间过长就会终止它们。你无法阻止这些系统杀死你的进程(除了转移到另一个主机)
此外,某些版本的PHP具有许多小内存泄漏/低效垃圾回收,在长时间运行的进程中使用时会开始占用内存。您可以使用此命令达到PHP内存限制,否则可能会占用虚拟机可用的内存量。
如果遇到这些挑战,通常的方法是以某种方式批量处理行。
希望有所帮助,祝你好运!
更新:重新批量处理 - 如果您发现您一次只能插入大约10,000行的系统,而不是编写一个程序来插入所有200,000行马上,你编写一个程序/系统,插入9,000然后停止。然后再次运行它并插入下一个9,000。然后接下来9,000,直到你完成。如何执行此操作取决于您从何处获取数据。如果您从平面文件中提取此数据,则可以像将平面文件拆分为多个文件一样简单。如果您从另一个数据库表中提取它,就像编写一个程序一样简单,以9,000个组的形式提取ID数组,让主程序选择那9,000行。消息队列系统是另一种用于此类任务的流行方法。