PHP中我们了解了那么多关于PHP的知识,不知道你们对运用PHP的技能掌握多少,我相信很大一部分人会了解但是不会运用知识,那么不急本篇文章就是带领大家更深刻的去运用PHP。
分析
1、工具
首先明确我们需要导出的数量50W+,其次我们使用过都知道Excel2003版最大行数是65535行,Excel2007版的行数(1048576行)才能达到我们的要求,所以我们需要使用Excel的版本必须为2007版及以上。
2、类库
目前最常用的PHP处理Excel的类库是PHPExcel(经实例测试导出1w条数据,再加上各种数据判断处理我用了5-8分钟);我在网上还查到一款叫PHPOffice(这个我没用过,大家可以尝试一下,据说效率比PHPExcel要好,等下次再写篇博文介绍一下);还有一个fputcsv(),导出的是csv格式文件,也可以用Excel文件打开。
1、超时
这个是直接的,请求超时。在这个多的数据请求处理下,超市非常常见,这时我们需要修改PHP的配置:set_time_limit(0)。
2、溢出
我们一次性的把所有数据从数据库取出填充到内存中,一下不光内存存储不够,并且如果服务器CPU配置不高的话使用率一下也能达到100%,会造成服务器卡负载。关于溢出我们也需要修改PHP的配置:ini_set('memory_limit', '1024M')。
解决方案
1、使用PHPExcel导出
使用此种方案一下导出50w+的数据体验非常的不好,经测试之后是虽说是可行的,服务器上也可以导出,就是时间会慢一些,而且会是一直下载状态。如果使用php类库,建议将php升级到最新的php7版本节省内存,且计算速度要快
2、使用csv导出
如果不是用php类库,那么fputcsv()是最佳方式,这种方式要比PHPExcel好很多;因为csv文件较小,csv文件数据可存放数量可大可小,csv生成不占用大量CPU和时间,而Excel的生成时间随着文件数据量的增加成而所需时间越多。
3、理想方案
将数据按照某种条件进行分割,减少导出的数据量,例如按照日期进行导出,可一周导出一次或者一天导出一次,数据分割肯定是必须的步骤,防止内存溢出,运行超时;
进行算法优化,在数据循环时,减少嵌套循环,生成csv或者Excel的数据对象时,一次成型,减少数据库查询次数,如果需要用到其他数据请提前生成相应数据结构的数据。
4、最快方案
将需求交给运维,直接运行sql语句进行导出:
SELECT * FROM table_name INTO OUTFILE 'F:/test.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n';
运行此语句可能出现如下错误:
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
这个是由于Mysql的配置权限问题,可以运行SHOW VARIABLES LIKE '%secure%';查看 secure-file-priv 当前的值是什么,NULL就代表禁止导出,所以需要设置一下。在Mysql安装路径下的my.ini文件,修改设置一下路径,没有的话添加上此配置:
secure_file_priv=F:/
50w+的数据你会发现很快就导出了。你也可以写此此语句,知道此文件在服务器上的路径,进行打包下载即可。
相关学习视频分享:php视频教程
以上是一分钟解决PHP大数据量(大于50万)导出到Excel的详细内容。更多信息请关注PHP中文网其他相关文章!

本文比较了酸和基本数据库模型,详细介绍了它们的特征和适当的用例。酸优先确定数据完整性和一致性,适合财务和电子商务应用程序,而基础则侧重于可用性和

本文讨论了确保PHP文件上传的确保,以防止诸如代码注入之类的漏洞。它专注于文件类型验证,安全存储和错误处理以增强应用程序安全性。

本文讨论了在PHP中实施API速率限制的策略,包括诸如令牌桶和漏水桶等算法,以及使用Symfony/Rate-limimiter之类的库。它还涵盖监视,动态调整速率限制和手

本文讨论了使用password_hash和pyspasswify在PHP中使用密码的好处。主要论点是,这些功能通过自动盐,强大的哈希算法和SECH来增强密码保护

本文讨论了OWASP在PHP和缓解策略中的十大漏洞。关键问题包括注射,验证损坏和XSS,并提供用于监视和保护PHP应用程序的推荐工具。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Atom编辑器mac版下载
最流行的的开源编辑器

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器