gpt4 book ai didi

php - 当最大执行时间为 30 秒时,如何在 php 中执行冗长的任务?

转载 作者:行者123 更新时间:2023-11-30 23:13:34 24 4
gpt4 key购买 nike

我正在将数据从文本文件解析到 mysql 数据库。问题是,在解析了一定数量的记录(从 250,000 到 380,000 之间的任意位置)后,我得到了 fatal error :超过 30 秒的最大执行时间。我可以通过将文件拆分成更小的文件来解决这个问题,但这很痛苦,我想找到一种方法来欺骗 PHP 处理整个文件。

有没有办法说服 PHP 运行冗长的进程,即使我无权访问 php.ini 并且无法更改我的最大执行时间?

顺便说一下,here's my parsing script .也许我的 php 代码有问题。

最佳答案

您可能会发现可以通过一次插入多行来提高性能。试试这个语法:

INSERT INTO
tbl_name (a,b,c)
VALUES(1,2,3),(4,5,6),(7,8,9)
;

您应该分组在一起的行数最好通过实验确定。可能是您在一个语句中添加的越多,它就会越快,但如果您没有打开自动提交,同样可能会很慢。

正如有人在评论中提到的,一次放入太多可能会耗尽 CPU,并引起服务器管理员的注意。如果这是您需要在主机上小心处理的事情,请一次尝试 200,然后在迭代之间进行一个小的 usleep

同样值得查看与您的数据库的连接 - 这是在同一台服务器上,还是在另一台服务器上?连接速度可能很慢。添加一些计时,例如,插入 5,000 行需要多长时间,然后尝试看看如何减少它。

这是 manual reference对于插入;请注意,这是非标准 SQL,不适用于其他数据库引擎。

关于php - 当最大执行时间为 30 秒时,如何在 php 中执行冗长的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18882490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com