我正在尝试在超过 100k 条记录的 php 中导出 Excel,但导出记录集需要一个多小时。
我正在使用SQL Server作为我的数据库。
有没有办法加快整个过程?
一种选择是确保最小化磁盘 IO,这意味着将对文件的多次写入分组为一个批次。比如一次写100条记录,而不仅仅是1条。
如果您正在编写 CSV 文件,这很容易实现,但我不确定您使用的 PHP Excell 库是否公开了此实现细节。
另一种选择是将文件保存在 RamDisk 驱动器中,这是一个在 ram 中分配并映射为磁盘驱动器的小型文件系统。
在 Unix/Linux 平台上,/dev/shm 是一个共享内存文件系统。从中读取/写入内容比HDD磁盘IO快得多。
如果你使用的是Windows,我记得有一些RamDisk解决方案。您必须下载一些实现Windows磁盘驱动程序的第三方软件。