亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 從 50 萬以上的 SQL 行生成 CSV

PHP 從 50 萬以上的 SQL 行生成 CSV

PHP
catspeake 2023-11-03 17:33:12
我多年來一直面臨著一個問題。我有一個包含 500 000 行的大型數據集,我想將它們打印到 CSV 中。在第一種情況下,我需要根據行上的列進行計算以確定“結果”列。我已經找到了解決方案。我正在使用“fetch”并逐行進行計算并逐漸打印到我的csv簡化示例:|---------------------------------------|| ID | type | var1 | var2 | var1 * var2 ||---------------------------------------|| 0  |  car |    2 |    5 |          10 || 1  | moto |    4 |    8 |          32 || 2  |  car |    0 |    2 |           2 ||---------------------------------------|在第二種情況下,我需要從 500k 行中打印涉及這 500k 行中大量行的計算(最多可以是 10k+ 行的組)。簡化示例:|-----------------------------|| type |      sum var1 * var2 ||-----------------------------||  car |             87677670 || moto |              3232435 ||-----------------------------|但是,計算比乘法之和要復雜得多。翻譯:它們不能直接用 SQL 完成。我的問題是,如果我將所有汽車從數據庫轉移到我的 php 應用程序中進行循環,我的 php memory_limit 將達到。我怎樣才能像第一個例子一樣逐漸做到這一點?不是:我使用的是 Oracle 12c 和 PHP 5.3.5
查看完整描述

1 回答

?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

您可以通過按塊進行計算來減少使用的內存。使用 SQL,您可以循環多個請求,每個請求僅包含特定數量的行。

FETCH對于 Oracle,這可以通過和來完成OFFSET。

查看完整回答
反對 回復 2023-11-03
  • 1 回答
  • 0 關注
  • 146 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號