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的更多相关文章

  1. C#通过OLEDB导出大数据到Excel

    C#导出数据到Excel,基本有两种方法,一种方法是通过Microsoft.Office.Interop.Excel.Application,一行一列的写入Excel中:另一种方法是通过OLEDB,利 ...

  2. Struts2 利用AJAX 导出大数据设置遮罩层

    Struts2 利用AJAX 导出大数据设置遮罩层 需求背景: 每次我们导出excel的时候 ,如果数据量很大,导出花费的时间会很长,页面却有没人任何反应,这个时候用户会认为系统有问题,要么关了页面, ...

  3. phpmyadmin导入导出大数据文件的办法

    在phpmyadmin的使用中,经常需要进行导入导出数据库的操作. 但是在导入导出大型数据库文件的时候经常会只是部分导出或者部分导入. 或者是导入导出不成功. 原因就是服务器和php.mysql限制了 ...

  4. 记录一笔关于PHPEXCEL导出大数据超时和内存溢出的问题

    通过查阅资料可以找到PHPEXCEL本身已经有通过缓存来处理大数据的导出了.但是昨晚一直没有成功,这可捉急了.最后想来想去就替换了phpExcel的版本了.最后就成功了.话不多说,代码附上 <? ...

  5. oracle导出大数据

    Sqluldr是什么:是一个oracle数据导出小工具. Sqluldr作用介绍:Sqluldr可以快速导出oracle数据库中的数据.该小工具可以将数据库中的数据,导出多种不同的格式(如.txt.. ...

  6. Office Open XML导出大数据

    Office Open XML导出大量数据到 Excel .NET使用Office Open XML导出大量数据到 Excel我相信很多人在做项目的都碰到过Excel数据导出的需求,我从最开始使用最原 ...

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

    POI3.8的SXSSF包是XSSF的一个扩展版本,支持流处理,在生成大数据量的电子表格且堆空间有限时使用.SXSSF通过限制内存中可访问的记录行数来实现其低内存利用,当达到限定值时,新一行数据的加入 ...

  8. Winform .NET 利用NPOI导出大数据量的Excel

    前言:公司让做一个导出数据到Excel的小工具,要求是用户前端输入sql语句,点击导出按钮之后,将数据导出到Excel,界面如图所示:文件下端显示导出的进度 遇到的问题: 1.使用NPOI进行Exce ...

  9. PHP导出大数据

    保存到本地 <?php // a db link for queries $lh = mysql_connect( '127.0.0.1', 'root', '' ); // and a con ...

随机推荐

  1. 深度学习课程笔记(四)Gradient Descent 梯度下降算法

    深度学习课程笔记(四)Gradient Descent 梯度下降算法 2017.10.06 材料来自:http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLDS1 ...

  2. 强化学习策略梯度方法之: REINFORCE 算法(从原理到代码实现)

    强化学习策略梯度方法之: REINFORCE 算法 (从原理到代码实现) 2018-04-01  15:15:42   最近在看policy gradient algorithm, 其中一种比较经典的 ...

  3. Java基础【冒泡、选择排序、二分查找】

    冒泡排序的思路就是前一个和后一个进行比较,如果大的就交换位置   大的数字后浮 如   12      8    5     31 第一轮   8   5   12   31 第二轮   5   8 ...

  4. @PathVariable与@RequestBody的区别,及前段请求接口的写法。

    @PathVariable 1:接受参数时,地址栏为:/{args1}/{args2} 2:用法:(@PathVariable(value = "args")Long  id) 3 ...

  5. cron,linux定时脚本

    Linux的cron和crontab Cron定时执行工具详解 Linux下的crontab定时执行任务命令详解 Linux上启动Cron任务 [linux]解析crontab cron表达式详解 c ...

  6. 防止网站检测出Selenium的window.navigator.webdriver属性

    只需在Chromeoptions对象中添加一个属性即可解决 import time from selenium.webdriver import Chrome, ChromeOptions optio ...

  7. 【转载】SeleniumIDE入门

    http://www.open-open.com/lib/view/open1452488109558.html

  8. 【Django】【二】模板

    1. Django-bootstrap3 guest>python -m pip install django-bootstrap3 [代码] settings.py ""& ...

  9. 转 代码修改buildoption

    using System;using System.IO;using UnityEditor;using UnityEngine; public class BuildPlayer : Scripta ...

  10. 1.1 vue.js devtools使用教程

    1. vue.js devtools使用教程