php导出大数据scv
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相关推荐
- POI3.8解决导出大数据量excel文件时内存溢出的问题
POI3.8解决导出大数据量excel文件时内存溢出的问题 参考文章: (1)POI3.8解决导出大数据量excel文件时内存溢出的问题 (2)https://www.cnblogs.com/feng ...
- PHP phpspreadsheet 导出大数据 csv excel
PHP phpspreadsheet 导出大数据 1.composer 安装 phpspreadsheet 这个 composer require phpoffice/phpspreadsheet 2 ...
- EasyExcel 低内存导出大数据量的Excel方案探索 50万行 50列 (附:实现代码)
文章目录 1.前言 2.准备工作 3.导出测试 3.1.单次查询.全量导出 3.2. 多次查询,多个文件,单次写入 3.3.多次查询,多个文件,多次写入 3.4.多线程导出探索 3.5.文件打包成ZI ...
- POI3.8 导出大数据excel(50万左右)
转载地址http://blog.csdn.net/yys79/article/details/26443603 POI之前的版本不支持大数据量处理,如果数据过多则经常报OOM错误,有时候调整JVM大小 ...
- Oracle 导出CSV、导出大数据
第一步:创建导出CSV语句 --创建导出语句 CREATE OR REPLACE PROCEDURE SQL_TO_CSV --名称可以自定义(记住导出时使用) (P_QUERY IN VARCHAR ...
- php 导出大数据量excel 解决方法 秒出 并不会出现PHPExcel内存溢出问题
最近公司需要每天生成亚马逊广告调价报告报表 并且文件格式必须为excel 数据量超过10w+ 使用PHPExcel组件 加上生成器yield 并且设置单元格对象缓存 还是会导致内存爆掉 最后使用了PH ...
- DbVisualizer 导出大数据
工具: DbVisualizer Pro 10.0.20 .OS: Windows 10.导出目标:Excel2007(.xlsx)最大支持1048576行.更新时间:2021/1/6 1.执行一个s ...
- java导出大数据excel表格,导出数据
常规的java导出excel表格最大的数据量是65535行. package com.sf.module.timeManagement.biz; import java.io.ByteArrayInp ...
- phpAmin如何导入导出大数据文件?
最近遇到了数据库过大的时候用phpadmin导入的问题,新版本的phpadmin导入限定是8M,老版本的可能2M,我的数据库有几十兆这可怎么办呢? 首先如果你有独立服务器或vps的话可以找到 Apac ...
最新文章
- 通过程序获得SQL Server自增型字段的函数:GetKey
- 使用adb install 时 提示error: more than one device and emulator
- Scala学习笔记01:Scala概述、安装配置、简单使用
- Xshell如何进行文件上传?
- mapreduce中文乱码,已解决
- C# 类型转换(is和as运算符)
- python中的translate_Python3 translate()方法
- python如何输入数据形成列表_将Python字典/列表插入到SQL数据库中最有效的方法是什么?...
- 智能优化算法:分类、特点和未来
- 台式计算机无线网络,台式电脑怎么设置无线网络?
- 利用python编程实现音频剪辑
- 360安全卫士指控QQ侵犯用户隐私
- SpringBoot/Spring Cloud/Docker
- 芯科发布EFR32BG22芯片,强劲性能对比TI芯片CC2640R2F和CC2640R2L
- C语言入门题目2——对于给定字符,输出该字符的前驱字符和后继字符
- Code jock 8.7 源代码编译
- 我在北京住隔断被踹墙拆房子的经历
- 输入银行卡号,可以自动识别到银行卡类型的方法
- 推荐电影一部: 反恐24小时。24Hours
- bufferedreader.readline()解析