当前位置: 首页 > 知识库问答 >
问题:

PHP CSV导出超过20000条记录[已关闭]

邹嘉荣
2023-03-14

给致命的内存分配错误查询读取超过20000记录从数据库,而且它需要太多的时间来加载

因此,请帮助我们出口20000多张唱片。

共有2个答案

云京
2023-03-14

只需分配更多的内存和时间。默认值通常为低水平。这些参数在php.ini中设置,或在php运行时设置。下面是在php中设置的第一步。

ini_set('memory_limit','300M'); // mem
ini_set('max_execution_time', 3000); // time

然而,导出较小的数据块可能更明智。这样做是比较“正确”的做法。但是我意识到,对于一次性操作/导出等,一个大的转储和更多的内存可能是可取的。

赵智勇
2023-03-14

如果将那么多记录导出为Excel,那么问题将比内存限制更严重。

如果您通过PHP脚本将数据导出到CSV,那么您可以使用以下方法

set_time_limit(6000);ini_set(memory_limit,-1);

第一个将设置脚本限制,第二个将清除内存问题。

但是避免使用大量数据集同时导出或导入总是很好的,但我同意有时我们别无选择,只能按照要求执行。

 类似资料:
  • 我正在开发spring-mvc应用程序。 我需要处理超过10万条数据记录。我不能让它依赖于数据库,所以我必须用java实现所有逻辑。 目前,我正在创建多个线程,并将1000条记录分配给每个要处理的线程。 我正在使用org。springframework。行程安排。同时发生的ThreadPoolTaskExecutor(线程池任务执行器)。 列表项 问题: 建议使用的线程数 我应该在线程之间平均分配

  • 导出记录是用于将加载的记录导出为请求和支持的格式的命令。 如果执行任何错误的语法,它会给出支持的格式列表。 OrientDB是一个文档数据库系列,因此JSON是默认支持的格式。 以下语句是命令的基本语法。 其中定义了想要获取记录的格式。 注 - 导出命令将根据记录标识导出已加载的记录。 示例 让我们考虑一下在前一章中使用的表。 编号 名字 年龄 1 Satish 25 2 Krishna 26 3

  •  当玩家点选菜单上的「系统 - 返回之前」后,可以返回上一个段落,通过记录就是指定这种自动存储位置的功能。  要使用通过记录功能,需要用到 record 指令、此外还要对 Config.tjs 的 recordHistoryOfStore 进行设定。  「系统 - 返回之前」这一菜单选项默认是不显示的,但是可以在 Config.tjs 中将 goBackMenuItem.visible 设定为 t

  • 我有一个场景,我需要为1000多条记录更新日期字段。 我使用的是本机查询,但出现了错误ora-01795列表中表达式的最大数目是1000。 经过检查,我找到了一些解决方案,比如打破这个答案中提到的in条款。 但我正在寻找这个解决方案,不是一个非常干净的解决方案。 在Spring中,我还可以使用其他更干净的方法吗?请建议。 我当前的查询如下: 我传入列表的ID是从第三方API收集的。

  • 我已经确保使用explain查询确实使用了我创建的索引,但性能仍然不够好。 我在想,现在是不是该去sharding了..但是我们很快就会开始每天有大约100万张新唱片在这个收藏中…所以我不确定它是否能很好地扩展.. 编辑:查询示例: 请注意,deviceType在我的集合中只有2个值。

  • 问题内容: 我想做一个查询,从中选择一堆数据,但是我希望能够通过仅选择每三个记录,甚至每个百分之一的记录来降低数据的分辨率。任何。 有什么简单的方法可以用ActiveRecord做到这一点吗? 问题答案: 在Oracle中,我将其编写如下: 这样做的好处是,过滤器发生在数据库中,因此不会检索所有内容。 在PostgreSQL中,这称为(实际上是SQL标准)。在MySQL中,不支持此功能。 在mys