メモリ制限のためにすべての300k行を同時にフェッチできません。 PDOのwhile/fetchを使用して、あらかじめ定義されたチャンクを循環させる方法はありますか?PDOが固定数の行を取り出します
Nが予め定められた間隔でwhile($result = $statement->fetch(PDO::FETCH_ASSOC, N))
:よう 何か。
メモリ制限のためにすべての300k行を同時にフェッチできません。 PDOのwhile/fetchを使用して、あらかじめ定義されたチャンクを循環させる方法はありますか?PDOが固定数の行を取り出します
Nが予め定められた間隔でwhile($result = $statement->fetch(PDO::FETCH_ASSOC, N))
:よう 何か。
これは必要ありません。あなたのメモリの問題がunbuffered query
によって引き起こされることはそう、ちょうどあなたのクエリ
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, FALSE);
前にこの魔法の行を追加し、もうメモリを搭載した1つの問題を持っていない - あなたのコード
while($result = $statement->fetch(PDO::FETCH_ASSOC))
ocupyます1行分のRAMを使用する
このように、サイクルごとに1つの結果をフェッチしています...すべての結果をフェッチする必要があります配列内にあります。 – Jumpa
それは変です。部分配列の使用は何ですか?私はそれを得ることができません。 1つの配列に300k行をすべて必要とするか、1つずつ繰り返します。 –
クエリで制限とオフセットを使用する –