php - 如何将查询分解为更小的查询

标签 php mysql

所以,我有一个 PHP 遍历数据库中的一个大表,然后当我得到结果时,我将它们放入 CSV 中。但是该表不断增长,现在我收到错误消息,指出允许的内存大小已耗尽。

 SELECT column1, column2, column3 FROM table

由于表格的大小,我无法将其放入 csv 中。我怎样才能减少这个查询的大小?我应该使用 LIMIT 然后将它分成两半吗?

最佳答案

如果您正在写入 CSV,请使用 fopen/fwrite 来保留一个流,而不是尝试连接到一个字符串(如果它很大会导致内存快速不足),对于数据库查询本身,使用 _fetch_array()您可以在服务器上保持结果处于事件状态,同时仅从 PHP 逐行检索。

这应该使内存使用率保持在很低的水平。

关于php - 如何将查询分解为更小的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48298286/

相关文章:

php - 将多个mysql查询重构为1

mysql - 使用 mysql 存储过程查找下一个特定工作日

php - 如何使用 Jquery Ajax 更新 PHP 变量?

php - 如何在 Slim Framework 中使用 Laravel illuminate 的数据库

php - 排序具有不同位数的MySQL数据

php通过nginx访问时在/tmp/systemd-private-nABCDE/tmp中有自己的/tmp

PHP 在两个文件之间传递变量

php - GROUP BY 子句忽略行和数据

javascript - 确认对话框无法正常工作

java - 从 java.sql.CallableStatement 调用的存储过程中检索记录