1.我系统要导出30w的数据,刚开始我使用的是:

ini_set('memory_limit', '1024M');set_time_limit(0);
header("Content-type:text/csv");header("Content-Disposition:attachment;filename=收款明细.csv");header('Cache-Control:must-revalidate,post-check=0,pre-check=0');header('Expires:0');header('Pragma:public');
(1) $str= "订单编号,来源店铺,付款ID,付款日期,付款金额,付款方式,付款币种,单据类型,记账币种,所属法人,凭证编码\n";(2) $result = 查询30w的数据。
foreach ($result as $item) {
$str .= $item['order_no'] . ",";$str .= $item['order_from'] . ",";$str .= $item['payment_id'] . ",";$str .= date('Y-m-d ', strtotime($item['payment_time'])) . ",";$str .= $item['payment_amount'] . ",";$str .= $item['payment_method'] . ",";$str .= $item['payment_currency'] . ",";$str .= $documentType[$item['document_type']] . ",";$str .= $item['account_currency'] . ",";$str .= $item['corporate_sn'] . ",";$str .= $item['certificate_code'] . ",";$str .= "\n";
}
echo mb_convert_encoding($str, "CP936", "UTF-8");unset($str);return ;描述:我要导出30w的大数据,(2) 一下子查询30w的数据可能会导致查询连接数据库超时   (1)  如果查询30w的数据查出来了,然后拼接到一个变量上,变量也可能会导致字符串太长而报错。

所以我们想到查询的时候进行切割,分页去查询。在字符串拼接的时候,可以转换字符串然后echo,优化代码如下:
ini_set('memory_limit', '1024M');set_time_limit(0);
header("Content-type:text/csv");header("Content-Disposition:attachment;filename=收款明细.csv");header('Cache-Control:must-revalidate,post-check=0,pre-check=0');header('Expires:0');header('Pragma:public');
$top= "订单编号,来源店铺,付款ID,付款日期,付款金额,付款方式,付款币种,单据类型,记账币种,所属法人,凭证编码\n";
echo mb_convert_encoding($top, "CP936", "UTF-8");
$count = 查询总数的sql语句。
$pre_count=50000;//循环获取for($i=0;$i<intval($count/$pre_count)+1;$i++){
$result = 分页查询返回结果。
foreach ($result as $item) {
$str .= $item['order_no'] . ",";$str .= $item['order_from'] . ",";$str .= $item['payment_id'] . ",";$str .= date('Y-m-d ', strtotime($item['payment_time'])) . ",";$str .= $item['payment_amount'] . ",";$str .= $item['payment_method'] . ",";$str .= $item['payment_currency'] . ",";$str .= $documentType[$item['document_type']] . ",";$str .= $item['account_currency'] . ",";$str .= $item['corporate_sn'] . ",";$str .= $item['certificate_code'] . ",";$str .= "\n";
echo mb_convert_encoding($str, "CP936", "UTF-8");unset($str);
}
}return ;

转载于:https://www.cnblogs.com/kobigood/p/5584140.html

php导出大数据scv相关推荐

  1. POI3.8解决导出大数据量excel文件时内存溢出的问题

    POI3.8解决导出大数据量excel文件时内存溢出的问题 参考文章: (1)POI3.8解决导出大数据量excel文件时内存溢出的问题 (2)https://www.cnblogs.com/feng ...

  2. PHP phpspreadsheet 导出大数据 csv excel

    PHP phpspreadsheet 导出大数据 1.composer 安装 phpspreadsheet 这个 composer require phpoffice/phpspreadsheet 2 ...

  3. EasyExcel 低内存导出大数据量的Excel方案探索 50万行 50列 (附:实现代码)

    文章目录 1.前言 2.准备工作 3.导出测试 3.1.单次查询.全量导出 3.2. 多次查询,多个文件,单次写入 3.3.多次查询,多个文件,多次写入 3.4.多线程导出探索 3.5.文件打包成ZI ...

  4. POI3.8 导出大数据excel(50万左右)

    转载地址http://blog.csdn.net/yys79/article/details/26443603 POI之前的版本不支持大数据量处理,如果数据过多则经常报OOM错误,有时候调整JVM大小 ...

  5. Oracle 导出CSV、导出大数据

    第一步:创建导出CSV语句 --创建导出语句 CREATE OR REPLACE PROCEDURE SQL_TO_CSV --名称可以自定义(记住导出时使用) (P_QUERY IN VARCHAR ...

  6. php 导出大数据量excel 解决方法 秒出 并不会出现PHPExcel内存溢出问题

    最近公司需要每天生成亚马逊广告调价报告报表 并且文件格式必须为excel 数据量超过10w+ 使用PHPExcel组件 加上生成器yield 并且设置单元格对象缓存 还是会导致内存爆掉 最后使用了PH ...

  7. DbVisualizer 导出大数据

    工具: DbVisualizer Pro 10.0.20 .OS: Windows 10.导出目标:Excel2007(.xlsx)最大支持1048576行.更新时间:2021/1/6 1.执行一个s ...

  8. java导出大数据excel表格,导出数据

    常规的java导出excel表格最大的数据量是65535行. package com.sf.module.timeManagement.biz; import java.io.ByteArrayInp ...

  9. phpAmin如何导入导出大数据文件?

    最近遇到了数据库过大的时候用phpadmin导入的问题,新版本的phpadmin导入限定是8M,老版本的可能2M,我的数据库有几十兆这可怎么办呢? 首先如果你有独立服务器或vps的话可以找到 Apac ...

最新文章

  1. 通过程序获得SQL Server自增型字段的函数:GetKey
  2. 使用adb install 时 提示error: more than one device and emulator
  3. Scala学习笔记01:Scala概述、安装配置、简单使用
  4. Xshell如何进行文件上传?
  5. mapreduce中文乱码,已解决
  6. C# 类型转换(is和as运算符)
  7. python中的translate_Python3 translate()方法
  8. python如何输入数据形成列表_将Python字典/列表插入到SQL数据库中最有效的方法是什么?...
  9. 智能优化算法:分类、特点和未来
  10. 台式计算机无线网络,台式电脑怎么设置无线网络?
  11. 利用python编程实现音频剪辑
  12. 360安全卫士指控QQ侵犯用户隐私
  13. SpringBoot/Spring Cloud/Docker
  14. 芯科发布EFR32BG22芯片,强劲性能对比TI芯片CC2640R2F和CC2640R2L
  15. C语言入门题目2——对于给定字符,输出该字符的前驱字符和后继字符
  16. Code jock 8.7 源代码编译
  17. 我在北京住隔断被踹墙拆房子的经历
  18. 输入银行卡号,可以自动识别到银行卡类型的方法
  19. 推荐电影一部: 反恐24小时。24Hours
  20. bufferedreader.readline()解析

热门文章

  1. 2019年高新企业申报苏州企业财务工作部署重点
  2. Win11如何调整鼠标dpi?
  3. python爬虫某招聘数据进行可视化
  4. RBF论ADSE(千万别学英语)之合理性
  5. 汉诺塔c语言做法:汉诺塔(Hanoi)是必须用递归方法才能解决的经典问题。它来自于印度神话。上帝创造世界时作了三根金刚石柱子,在第一根柱子上从下往上按大小顺序摞着64片黄金圆盘
  6. 2019年的最新的最全的ava常见的面试题
  7. NB-IoT SIM7000C调试笔记 01 NB-IoT及GPRS加网测试
  8. 常用的前端在线引用JS
  9. 【PPic】项目中重要第三方组件集成打包测试
  10. Python 函数库 APIs 编写指南