(使用pdo)PHP - 從mysql獲取大型表時發生內存泄露
因此,我有一張表,它的大小几乎爲1 GB,我想從中取出。同時,我正在操作我獲取的數據,然後將其插入到多個其他表中。我的代碼看起來像這樣:
$stmt = $pdo->query("SELECT * FROM foo");
$stmt2 = $pdo->prepare("INSERT INTO bar (col1) VALUES (?)");
$stmt3 = //...etc
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$toInsert = doStuff($row['baz']);
$stmt2->execute(array($toInsert));
//etc.
}
每當我在完整的表上運行腳本時,它的內存不足。我可以給它更多,但我覺得有更好的方法。
我認爲未緩衝的查詢可能會解決問題,但我需要同時運行這些查詢。
'INSERT INTO bar(col1)(SELECT baz FROM foo)' –
執行批處理,每次少於100條記錄,在出現任何特定行出錯的情況下創建日誌表。 –