我想将数据从mysql快速导出到输出文件。事实证明,INTO OUTFILE语法似乎比我在PHP性能方面可以执行的任何处理都要先进。但是,这种方法似乎存在很多问题:
在管理用户帐户/文件权限方面,我将如何以一种噩梦般的方式来管理它? 我需要从我的php脚本访问输出文件,并且如果可能的话,我也想将此文件输出到应用程序目录。当然,如果还有另一种以有效的方式导出查询结果的方法,我想知道。
目前,我正在考虑以下方法:
答案 0 :(得分:1)
我无法获得适用于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格式可能会中断。您还需要转义这些字符(例如,“ \”),并可能需要执行某些操作关于mysql将null值输出为NULL(字符串)。