【问题标题】:Migrate table from MS SQL Server to MySQL将表从 MS SQL Server 迁移到 MySQL
【发布时间】:2010-09-18 18:37:11
【问题描述】:

我必须将一个表从 MSSQL Server 迁移到 MySql。问题是表很大(6500 万条记录),整个过程需要太多时间。有谁知道如何加快速度?有什么有用的工具可以改善这一点吗?

【问题讨论】:

标签: mysql sql-server migrate


【解决方案1】:

只需要执行一次吗?不要浪费太多时间优化,等到它完成后再继续。

需要更频繁地执行此操作吗?然后详细说明您目前使用的工具/技术会有所帮助。

【讨论】:

    【解决方案2】:

    这是我将 800K 记录表从 MS Sql Server 迁移到 MySQL 的方法。

    创建查询以表格格式显示数据:

    SELECT [PostalCode] + ' ' +
      [StateCode] + '   ' +
      [Latitude] + '    ' +
      [Longitude] + '   ' +
      [CityName]  
    FROM [dbo].[PostalCode]
    

    使用 SQL Server Management Studio 执行查询,并选择将结果输出到文件中(菜单:查询 -> 结果到 -> 结果到文件)

    文件名必须是 MySQL 中表的名称。文件扩展名无关紧要。

    然后使用 mysqlimport.exe(在 Windows 上)导入数据(该表必须存在于 MySQL 数据库中):

    mysqlimport.exe --user=user_name
      --columns=postalcode,statecode,latitude,longitude,cityname 
      --ignore-lines=2 databaseName pathToFile
    

    导入后,我不得不删除表的最后 2 条记录,因为文件末尾包含一些垃圾:(受影响的 818193 行)

    对于 800K,它非常快:10 秒导出,然后 10 秒导入。

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      您可以将数据导出为文本,然后使用 mysql load 语句:

      将数据本地 infile '/somefolder/text_file_with_data.txt' 加载到以 '\t' 终止的表 some_table 字段中以 '\n' 终止的行

      或者如果你把数据文件放在mysql服务器上你可以:

      '/somefolder_on_the_mysql_server/text_file_with_data.txt' 文件中的数据加载到以'\t' 终止的表some_table 字段中以'\n' 终止的行

      我不确定要导出 mssql 的语法是什么

      您始终可以以 10,000 或 100,000 个为一组导出。

      【讨论】:

        【解决方案4】:

        确保 mysql 表最初没有索引;加载完成后添加它们。

        【讨论】:

          【解决方案5】:

          在您的 my.ini 文件中使用这样的语句,在开始插入之前确保 MySQL 表存储文件足够大:

          innodb_data_file_path=ibdata1:1000M:autoextend
          

          【讨论】:

            【解决方案6】:

            尝试使用 SQL Server 的导入/导出向导生成的 SSIS/DTS 包将数据从 mssql 中取出并导入 mysql。 (使用适当的 OLEDB/ADO 提供程序连接到 MySQL。

            周五回家时开始,周末后再回来查看;)

            【讨论】:

              【解决方案7】:

              确保没有列上有索引,并删除任何外键(如果您使用 InnoDB 作为表类型)以进行导入。

              【讨论】:

                猜你喜欢
                • 2011-09-25
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-06-17
                • 2014-05-24
                • 2021-12-16
                • 2011-09-04
                • 2012-05-14
                相关资源
                最近更新 更多