由于内存限制,我无法同时获取所有300k行。 任何使用while/fetch PDO在预定义块中循环的方法? 是这样的:PDO获取固定行数
while($result = $statement->fetch(PDO::FETCH_ASSOC, N))
其中N是一个预定义的时间间隔。
由于内存限制,我无法同时获取所有300k行。 任何使用while/fetch PDO在预定义块中循环的方法? 是这样的:PDO获取固定行数
while($result = $statement->fetch(PDO::FETCH_ASSOC, N))
其中N是一个预定义的时间间隔。
你不需要那个。你的内存问题是由unbuffered query
造成的所以,只要你的查询
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, FALSE);
之前添加此魔线,并没有带记忆功能的单一的问题了 - 你的代码
while($result = $statement->fetch(PDO::FETCH_ASSOC))
会按观测不超过单排内存
这样我每循环取一个结果...我需要获取所有结果在一个数组中。 – Jumpa
这很奇怪。什么是部分数组的使用?我无法得到它。要么你需要单个数组中的所有300k行,要么只是逐个迭代。 –
在您的查询中使用限制和偏移量 –