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 ;
php导出大数据scv的更多相关文章
- C#通过OLEDB导出大数据到Excel
C#导出数据到Excel,基本有两种方法,一种方法是通过Microsoft.Office.Interop.Excel.Application,一行一列的写入Excel中:另一种方法是通过OLEDB,利 ...
- Struts2 利用AJAX 导出大数据设置遮罩层
Struts2 利用AJAX 导出大数据设置遮罩层 需求背景: 每次我们导出excel的时候 ,如果数据量很大,导出花费的时间会很长,页面却有没人任何反应,这个时候用户会认为系统有问题,要么关了页面, ...
- phpmyadmin导入导出大数据文件的办法
在phpmyadmin的使用中,经常需要进行导入导出数据库的操作. 但是在导入导出大型数据库文件的时候经常会只是部分导出或者部分导入. 或者是导入导出不成功. 原因就是服务器和php.mysql限制了 ...
- 记录一笔关于PHPEXCEL导出大数据超时和内存溢出的问题
通过查阅资料可以找到PHPEXCEL本身已经有通过缓存来处理大数据的导出了.但是昨晚一直没有成功,这可捉急了.最后想来想去就替换了phpExcel的版本了.最后就成功了.话不多说,代码附上 <? ...
- oracle导出大数据
Sqluldr是什么:是一个oracle数据导出小工具. Sqluldr作用介绍:Sqluldr可以快速导出oracle数据库中的数据.该小工具可以将数据库中的数据,导出多种不同的格式(如.txt.. ...
- Office Open XML导出大数据
Office Open XML导出大量数据到 Excel .NET使用Office Open XML导出大量数据到 Excel我相信很多人在做项目的都碰到过Excel数据导出的需求,我从最开始使用最原 ...
- POI3.8解决导出大数据量excel文件时内存溢出的问题
POI3.8的SXSSF包是XSSF的一个扩展版本,支持流处理,在生成大数据量的电子表格且堆空间有限时使用.SXSSF通过限制内存中可访问的记录行数来实现其低内存利用,当达到限定值时,新一行数据的加入 ...
- Winform .NET 利用NPOI导出大数据量的Excel
前言:公司让做一个导出数据到Excel的小工具,要求是用户前端输入sql语句,点击导出按钮之后,将数据导出到Excel,界面如图所示:文件下端显示导出的进度 遇到的问题: 1.使用NPOI进行Exce ...
- PHP导出大数据
保存到本地 <?php // a db link for queries $lh = mysql_connect( '127.0.0.1', 'root', '' ); // and a con ...
随机推荐
- UVA11270 Tiling Dominoes(轮廓线动态规划)
轮廓线动态规划是一种基于状态压缩解决和连通性相关的问题的动态规划方法 这道题是轮廓线动态规划的模板 讲解可以看lrj的蓝书 代码 #include <cstdio> #include &l ...
- [HDU 2520] 我是菜鸟,我怕谁(不一样的for循环)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2520 //学学不一样的for循环 #include<iostream> #include& ...
- IAR8.11.1安装与破解教程
IAR 8.11.1的安装与破解 1.IAR的安装 (1) (2)然后选择自己的调试方式驱动(jtag与swd...) (3)选择路径,一直下一步就好 ...
- facebook api call——error
Error Codes send-api error-codes whatsapp api errors marketing-api error-reference graph-api/using-g ...
- HDU-6033 Add More Zero
There is a youngster known for amateur propositions concerning several mathematical hard problems. N ...
- 4、lvs nat和dr类型演示
实战操作 LVS-NAT (应用场景:VIP是公网地址,DIP和RIP一般使用私网地址,NAT的主要目的是为了隐藏服务器) 核心要点: 1.DIP与各real server的RIP必须在同一个网段中 ...
- HDU 4325 Flowers(树状数组+离散化)
http://acm.hdu.edu.cn/showproblem.php?pid=4325 题意:给出n个区间和m个询问,每个询问为一个x,问有多少个区间包含了x. 思路: 因为数据量比较多,所以需 ...
- git介绍和常用命令总结
git中经常用的命令就是以下六个: 以下是命令总结: 另外,自己碰到的问题及解决方法: 在分支内提交远程仓库,-am: revert后进入vim,一直按住esc ,再连续按大写的z两次就退出来了: g ...
- _lottery
通过积分购买彩票,奖励以积分形式发放 当aaa_chance,max_chance,min_chance均为0时,自动计算系统最小积分开销进行开奖
- 什么是可哈希的(hashable)
如果一个对象在自己的生命周期中有一哈希值(hash value)是不可改变的,那么它就是可哈希的(hashable)的,因为这些数据结构内置了哈希值,每个可哈希的对象都内置了__hash__方法,所以 ...