前言: 很多时候,因为数据统计,我们需要将数据库的数据导出到Excel等文件中,以供数据人员进行查看,如果数据集不大,其实很容易;但是如果对于大数集的导出,将要考虑各种性能的问题,这里以导出数据库一百万条数据为例,导出时间不过20秒,值的学习的一种大数据导出方式。

一、导出思路

需要考虑服务器内存

需要考虑程序运行的最大时间

缺少BOM头导致乱码的处理

如果导出数量过大,推荐使用循环导出,每次循环这里以导出一万条为例,循环100次即可全部导出

二、导出源码

下面源码将数据库信息修改成自己的即可使用

亲测导出一百万条数据,3个字段,不过20秒

如果服务器硬件不支持一次读取一万条数据,可将循环次数提高,导出数量降低

//让程序一直运行

set_time_limit(0);

//设置程序运行内存

ini_set('memory_limit', '128M');

$fileName = '测试导出数据';

header('Content-Encoding: UTF-8');

header("Content-type:application/vnd.ms-excel;charset=UTF-8");

header('Content-Disposition: attachment;filename="' . $fileName . '.csv"');

//打开php标准输出流

$fp = fopen('php://output', 'a');

//添加BOM头,以UTF8编码导出CSV文件,如果文件头未添加BOM头,打开会出现乱码。

fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF));

//添加导出标题

fputcsv($fp, ['姓名', '年龄', '地区']);

//链接数据库

$dsn = "mysql:host=127.0.0.1;port=3306;dbname=db_www;charset=utf8";

$pdo = new PDO($dsn, 'root', '');

$step = 100; //循环次数

$nums = 10000; //每次导出数量

for($i = 0; $i < $step; $i++) {

$start = $i * 10000;

$sql = "SELECT uname,age,city FROM `hd_test` ORDER BY `id` LIMIT {$start},{$nums}";

$pdostatement = $pdo->query($sql);

$result = $pdostatement->fetchAll(PDO::FETCH_ASSOC);

foreach ($result as $item) {

fputcsv($fp, $item);

}

//每1万条数据就刷新缓冲区

ob_flush();

flush();

}

三、快速生成百万条测试数据

这里推荐数据库的蠕虫复制命令

先建好表后,插2条测试数据后,执行几次下列命令,即可指数增长

INSERT INTO hd_test (uname,age,city) SELECT uname,age,city FROM hd_test;

到此这篇关于PHP快速导出百万级数据到CSV或者EXCEL文件的文章就介绍到这了,更多相关PHP 导出百万级数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

php导出1万条数据excel_PHP快速导出百万级数据到CSV或者EXCEL文件相关推荐

  1. php 快速导出百万级数据到 csv 或者 excel 文件

    目录 一.导出思路 二.导出源码 三.蠕虫复制 一.导出思路 需要考虑服务器内存 需要考虑程序运行的最大时间 缺少 BOM 头导致乱码的处理 如果导出数量过大,推荐使用循环导出,每次循环这里以导出一万 ...

  2. Excel导入30万条数据和导出50万条数据方案

    背景:最近在做一个功能改造,老系统Excel导入导出大批量数据,要求支持一次性导入30万条数据,一次性导出50万条数据,还需要对数据进行校验,另外对性能有要求,不能比老系统的性能差.和业务了解了老系统 ...

  3. 导出100万条数据到excel

    导出100万条数据到excel 目的 数据库中有100万条数据,用java程序导入到excel,所花费的时间 演示 过程 eclipse 创建main sqlserver连接数据库程序 TCP/IP连 ...

  4. Excel怎么导出百万级数据

    以前很久没碰到导出上10万数据到Excel.最近两年的业务有导出几十万数据的场景.Excel导出之前一直用NPOI导出的,NPOI的优势是不依赖Office环境.但是早期的NPOI导出操作Excel全 ...

  5. 使用POI导出百万级数据到excel的解决方案

    使用POI导出百万级数据到excel的解决方案 参考文章: (1)使用POI导出百万级数据到excel的解决方案 (2)https://www.cnblogs.com/hxun/p/11419006. ...

  6. oracle百万级数据导入,用Perl从oracle导出百万级数据到excel

    Perl从oracle导出百万级数据到excel excel 2007 可以存放1048576行.16384列的数据:excel 2003大概是65535行 我从oracle中导出30万行60列的数据 ...

  7. Java写入大字符串到oracle数据库_java程序如何提高oracle百万级数据的insert效率

    业务:需要从一个数据库查询百万级数据,在java程序中插入到另一个oracle数据库中 代码: private final int persize = 1000; /** * 推送数据-流程 * @p ...

  8. php导出csv_原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】

    本文实例讲述了原生PHP实现导出csv格式Excel文件的方法.分享给大家供大家参考,具体如下: 效果图 源码分析 index.php require_once "./Export.php& ...

  9. 百万级数据量,千万级数据量是多少,海量数据的优化方案

    百万级数据量,千万级数据量是多少? 这里的百万级,千万级,针对数据库,指的是表的数据条数.有时也指并发事务量. 海量数据的优化方案 Note:    具体优化要结合自身的业务特性 百万级: 这个数据量 ...

最新文章

  1. Visual Studio 6.0编译PWLib1.12总结
  2. 如何确定python对应电脑版本_查看Anaconda版本、Anaconda和python版本对应关系和快速下载...
  3. sdut2772 KMP的简单应用
  4. php回调函数如何执行顺序,PHP回调函数调用方式
  5. Wikioi 1222 信与信封问题(二分图匹配)
  6. 张爱玲《小团圆》的备忘和感想 (一)
  7. shell之什么时候使用shell以及最简单的shell程序
  8. UNIX网络编程笔记(4):简单的回射程序
  9. python最优分箱计算iv值_GitHub - zhaoxingfeng/WOE: Weight of Evidence,基于iv值最大思想求最优分箱...
  10. 2.2 logistic 回归
  11. python bootstrap安装_python + django + bootstrap + uWSGI + nginx 环境搭建
  12. 用php上传mysql表文件_php实现上传文件并存储到mysql数据库
  13. python小代码_python小代码之阶乘求和
  14. Sitadel:一款功能强大的Web应用扫描器
  15. Rational Rose如何删除线段
  16. 学计算机逻辑思维能力测试题,逻辑思维题(逻辑思维能力测试20题)
  17. Python零基础爬虫速成②:批量爬取微信公众号图片(基于beautifulsoup爬取吉他谱)
  18. uniapp 实现微信聊天效果 阻止input失焦
  19. MFC下ODBC方式连接数据库
  20. 如何正确选择ESD二极管,参考这几点!

热门文章

  1. 徐则臣新作《北上》:我们的历史写在这条河流上
  2. 网络游戏服务器构架设计(四):云风的轨迹
  3. 人工智能微专业,来锻造核心职业竞争力啦
  4. 代数几何:消元(Elimination)、扩展(Extension)
  5. 地平线与百丽国际达成战略合作 将联合打造智慧零售跨界合作标杆
  6. CISCN2023 badkey1badkey2
  7. INFOCOM 2021最佳论文奖:一种新颖的分布式算法提高在GPU集群上训练大型AI模型的效率
  8. linux FTP本地登录
  9. Unity将粒子光效导出成png序列帧
  10. python 加注拼音-Python pypinyin库,实现文字转拼音