目录

一、导出思路

二、导出源码

三、蠕虫复制


一、导出思路

  • 需要考虑服务器内存
  • 需要考虑程序运行的最大时间
  • 缺少 BOM 头导致乱码的处理
  • 如果导出数量过大,推荐使用循环导出,每次循环这里以导出一万条为例,循环100次即可全部导出

二、导出源码

  • 下面源码将数据库信息修改成自己的即可使用
  • 亲测导出一百万条数据,3个字段,不过20秒
  • 如果服务器硬件不支持一次读取一万条数据,可将循环次数提高,导出数量降低
<?php//让程序一直运行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 文件相关推荐

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

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

  2. springboot+poi导出百万级数据避免OOM内存溢出

    springboot+poi导出百万级数据避免OOM内存溢出 文章目录 springboot+poi导出百万级数据避免OOM内存溢出 前言 一.具体实现 二.代码实现 1.引入poi包 2.功能代码 ...

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

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

  4. mysql数据导入导出 CSV格式_导出mysql的数据为csv格式的文件

    Mysql自带数据导出的命令 into outfile(本地导出) SELECT * FROM server_warning_repaired into outfile '/tmp/test.csv' ...

  5. 数据完整性测试之【二】导出的CSV、Excel文件和数据库表里的记录

    前面的分享 接口返回值和数据库表里的记录[一]说过,把前端页面显示的所有数据明细导出为CSV文件,将其和数据库表里的数据做校验,这儿说下我对导出的CSV.Excel的处理: 个人博客:https:// ...

  6. C# 读取CSV和EXCEL文件示例

    我们习惯了直接连到数据库上面读取数据表的数据内容: 如果有一天我们需要读取CSV,EXCEL文件的内容的时候,可不可以也像读数据表的方式一样呢?当然可以,使用OleDB ADO.NET是很简单的事情 ...

  7. excel emoji php,PHP导出带有emoji表情的文本到excel文件出问题了

    前段时间做了一个导出用户信息(包含微信昵称)到excel文件的功能,一直没问题,今天突然有人反馈说导出来的数据有一些丢失了.我试了一下,发现有些数据导出没问题,有些有问题,某些列出现了空白,数据打印出 ...

  8. php emoji 保存 显示不出来,PHP导出带有emoji表情的文本到excel文件出问题了

    前段时间做了一个导出用户信息(包含微信昵称)到excel文件的功能,一直没问题,今天突然有人反馈说导出来的数据有一些丢失了.我试了一下,发现有些数据导出没问题,有些有问题,某些列出现了空白,数据打印出 ...

  9. R—读取数据(导入csv,txt,excel文件)

    R-读取数据(导入csv,txt,excel文件) 转自:http://www.cnblogs.com/zhangduo/p/4440314.html 导入CSV.TXT文件 read.table函数 ...

最新文章

  1. 波特率、比特率、速率、通信速度
  2. MySQL 日期时间类型怎么选?千万不要乱用!
  3. [转,借鉴]Java学习从入门到精通-过程篇
  4. 学java需要什么基础_学java需要什么基础?
  5. python27怎么使用_pygtk:glade的使用(针对python27的第一个例子)
  6. C++:07---this指针
  7. LeetCode 970. 强整数
  8. linux中如何改IP
  9. 如果用户计算机已接入,01计算机基础知识题(50道)
  10. 【Paper-Attack Defense】Adversarial Label-Flipping Attack and Defense for Graph Neural Networks
  11. 需求工程:加强监理,规避风险(转载)续三
  12. 当 AI 遇见经典,科大讯飞发布两款智能笔记本新品!
  13. 转载---ubutun18.04系统安装搜狗输入法
  14. Taylor Swift - Enchanted_20131123141153-pdf
  15. java开发爱恩斯坦棋,爱恩斯坦棋计算机博弈系统的研究与实现
  16. 切换页面导致计时器停止,JS暂停!
  17. python 语义similarity_GitHub - samelltiger/word_similarity: 基于《知网》的语义相似度计算 python2.7 API...
  18. 最全大数据就业前景分析!此篇文章给你答案
  19. 是不是程序员总会遇到一个瓶颈期,觉得自己没有进步了,该怎么解决?
  20. matlab激光操纵控制系统设计,某激光操作控制系统的滞后校正

热门文章

  1. Amazon AppStream服务介绍
  2. orb-slam系列 LoopClosing线程 ComputeSim3(十一)
  3. Getaverse,走向 Web3 的远方桥梁
  4. JWT详细教程与使用
  5. Android 定时器Timer
  6. 数据标注基础知识:文本数据标注的类型及应用场景
  7. JS获取上周(自然周、最近七天)、上月(自然月、最近一个月)、全年的开始和结束日期
  8. 往往是认知决定你的人生格局
  9. 什么是工作单位邮箱?工作域名邮箱怎么弄?
  10. localhost无法访问本机