在长时间的sql结果之后执行突然停止

sxissh06  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(280)

我有一个从数据库中提取记录的简单代码。具体问题在于:

while ($row = $results->fetch_array(MYSQLI_ASSOC))
    {
        $data[$count] = $row;
        $count++;
    }

所以,我做了一个简单的 SELECT 我期望从中得到10万个结果。如果结果超过~50k,则 while loop正在向上移动,甚至一点都没有 var_dump .
但如果我 SELECT 一排的结果就出现了。
我无法访问服务器配置。最长执行时间为60秒。
谢谢您。

a64a0gku

a64a0gku1#

你可以改变主意 php.ini 也可以从php代码中配置值。将此添加为函数的第一行

set_time_limit(0);

它将改变世界 max_execution_time 无限价值

nwsw7zdq

nwsw7zdq2#

原来是个 memory_limit 问题,仅分配 256M . 将限制设置为 2048Mini_set('memory_limit', '2048M') 解决了问题。
请记住 set_time_limit(0) 在php中被认为是不好的做法,因为php解释器将无休止地运行[source]如果脚本需要此命令,则需要对其进行优化。

相关问题