MySQL在选择输入输出文件与从结果以编程方式创建文件之间的性能

MySQL在选择输入输出文件与从结果以编程方式创建文件之间的性能,mysql,database-administration,into-outfile,Mysql,Database Administration,Into Outfile,通过执行SELECT-into-OUTFILE将记录保存到文件与在应用程序内执行SELECT-query并遍历结果并附加到文件之间是否存在显著差异。假设服务器和客户端在同一台机器上,并且结果集非常大(百万行)。除了迭代应用程序代码中的结果集的开销外,服务器资源的利用率是否有任何显著差异?除非您确定您的应用程序可以非常快速地迭代行,否则我将坚持使用SELECT INTO OUTFILE,因为它是专为快速备份/恢复过程而创建的,在我的经验中,速度非常快,不清楚你认为什么是“显著的差异”——每个应用程

通过执行
SELECT-into-OUTFILE
将记录保存到文件与在应用程序内执行SELECT-query并遍历结果并附加到文件之间是否存在显著差异。假设服务器和客户端在同一台机器上,并且结果集非常大(百万行)。除了迭代应用程序代码中的结果集的开销外,服务器资源的利用率是否有任何显著差异?

除非您确定您的应用程序可以非常快速地迭代行,否则我将坚持使用SELECT INTO OUTFILE,因为它是专为快速备份/恢复过程而创建的,在我的经验中,速度非常快,不清楚你认为什么是“显著的差异”——每个应用程序都有它自己的公差。即使您澄清了这一点,最好的答案还是自己尝试并对结果进行基准测试——一系列问题可能会影响答案,如果确保您保持在应用程序的性能公差范围内对您来说很重要,那么您只能通过实验获得明确的答案。也就是说,可以合理地假设(在大多数情况下)@Giles是正确的将结果集复制到客户端的开销,只有当该客户端执行MySQL服务器在其本机代码中可以自己执行的操作时,才可能比您自己的代码实际具有的任何(不太可能)性能优势更重要(对于某些连接器)是在将控件返回到客户端程序之前发送整个结果集。
SELECT INTO OUTFILE
可能以增量方式执行,从而重叠读写操作。