由於內存限制,我無法同時獲取所有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行,要麼只是逐個迭代。 –
在您的查詢中使用限制和偏移量 –