json php脚本在拉大数据时耗尽

时间:2011-07-19 08:15:54

标签: php mysql json

我有一个查询需要提取4000对象类型的数据并形成一个json结果。当我在400个数据内运行时,没关系。但是当我想要提取更多数据时。它给了我空白页 - 我想php刚刚停止执行。但我等待的只有10-20秒。超时设置可能不是问题。它是关于记忆的东西。所以我将memory_limit更改为512M并再次尝试,仍然没有变化。

max_execution_time = 30     ; Maximum execution time of each script, in seconds
max_input_time = 60     ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 512M      ; Maximum amount of memory a script may consume (128MB)

然后我想知道它是否与mysql有关,但我真的不知道该改变什么......

key_buffer_size = 16K
max_allowed_packet = 16M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K

我在测试盒上,因此CPU,RAM不会出现问题。

知道可能是什么问题吗?

2 个答案:

答案 0 :(得分:1)

将错误报告级别设置为最大值:

error_reporting(E_ALL);
ini_set('display_errors',1);

这将帮助您理解问题

答案 1 :(得分:0)

这不能回答问题,但你可以通过手动打印外部JSON数组来降低内存使用率:

echo "[";
$first = true;
while ($row = mysql_fetch_assoc($result)) {
    if ($first)
        $first = false;
    else
        echo ",";
    echo json_encode($row);
}
echo "]\n";