代码之家  ›  专栏  ›  技术社区  ›  Nick

将大量行从mssql插入MySQL最有效的方法是什么?

  •  4
  • Nick  · 技术社区  · 16 年前

    我看不出SSMS中的执行计划有什么进展,但是看起来好像是为每一行执行一条INSERT语句,而不是一条插入所有行的语句。

    我能做些什么来提高性能?如果是这样的话,有没有什么方法可以强制在一条语句中将行插入MySQL?

    4 回复  |  直到 16 年前
        1
  •  1
  •   Coding Flow    16 年前

    问题是您要从中选择的表在本地服务器上,而要插入的表在远程服务器上。因此,链接服务器必须将每一行转换为 INSERT INTO Table (Field1, Field2) VALUES ('VALUE1','VALUE2') 或者类似的MySQL服务器。您可以做的是在SQL server中的每一行上保留一个校验和。不必截短并重新插入整个表,只需删除并重新插入更改的记录和新记录即可。除非你的大部分记录每天都在改变,否则这将减少你必须大量传输的数据量,而不必去处理文本文件的导出和重新导入。

        2
  •  3
  •   Ryan M    16 年前

    LOAD DATA INFILE 在MySQL中比INSERT快得多。如果可以将mssqlserver设置为输出一个临时CSV输出文件,则可以使用命令行将其拉入MySQL mysqlimport 工具,或在MySQL语句中使用LOAD DATA infle。

        3
  •  0
  •   hol    16 年前

    我不确定这是否会使它更快,但批量下载和上传将是另一种选择。

    在mySQL端,您可以进行加载数据填充

    不知道如何在SQLServer端卸载它,但可能有类似的情况。

        4
  •  0
  •   Ian Wood    16 年前

    LOAD DATE INFILE

    从文件插入数据要快得多