我想快速将数据从mysql导出到输出文件。事实证明,INTO OUTFILE语法似乎领先于我在PHP性能方面可以做的任何处理。然而,这种方法似乎充满了问题:
在管理用户帐户/文件权限方面,我如何管理这不是一场噩梦?我需要从我的PHP脚本访问输出文件,如果可能的话我也想将此文件输出到应用程序目录。当然,如果有另一种方法以性能有效的方式导出我的查询结果,我想知道它。
目前我正在考虑以下方法:
我无法获得为mysql用户工作的访问权限。让脚本将用户添加到www-data组或其他此类措施也会增加应用程序部署开销。
我决定使用symfony Process组件的程序管道方法。
mysql -u <username> -p<password> <database> -e "<query>" | sed 's/\t/","/g;s/^/"/;s/$/"/;' > /output/path/here.csv
请注意,如果您的列中包含保留字符(如\,“\ n等),则csv格式可能会中断。您还需要转义这些字符(例如”to“)并可能执行有关mysql输出的操作null值为NULL(字符串)。