为了实验大数据的导出,我们这里先自已创建一张大表,表结构如下: ? 1 2 3 4 5 6 7 8 9 10 11 CREATE TABLE `tb_users` ( `id` int (11) unsigned NOT NULL AUTO_INCREMENT COMMENT 用户ID , ` name ` varchar (32) DEFAULT COMMENT 用户名 , `age` tinyint(
为了实验大数据的导出,我们这里先自已创建一张大表,表结构如下:
然后写个php脚本往这个表插入数据,代码如下:
里面用到的TP3.2的String类大家自行上TP官网下载。整个用时2个多小时,最后数据大小662M。 现在我们用php提供的fputcsv来导出这一百万的数据,原理就是打开一个标准输出流,然后把数据按一万条来分割,每一万条就刷新缓冲区。
整个过程用时5分钟,最终生成的csv文件大小420M。
对于如何用phpexcel导出大数据,并没有什么比较好的方案,phpexcel提供的一些缓存方法,数据压缩,虽然内存使用小了,但所用时间则加长了,时间换空间,显然并不是最好的方案。比较靠谱的方法还是生成多个下载链接地址,把你要下载的数据,以get形式传递当前页数,后台进行数据分页然后导出。
比如你有一个查询数据表单,ID为searchFrm,然后你想把导出数据按1万条分割(phpexcel一次导出1万条是没有问题的,效率还行)
|
2019-06-28
2019-10-03
2019-07-04
2019-06-22
2019-02-12