我多年来一直面临着一个问题。我有一个包含 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
。
- 1 回答
- 0 关注
- 109 浏览
添加回答
举报
0/150
提交
取消