将表从MS SQL Server迁移到MySQL
我必须将一个表从MSSQL服务器迁移到MySql。问题是这个表相当大(6500万条记录),整个过程花费了太多时间。有人知道如何加快速度吗?任何有用的工具都可以改善这一点吗?只需要做一次吗?不要浪费太多时间进行优化,等到优化完成再继续将表从MS SQL Server迁移到MySQL,mysql,sql-server,migrate,Mysql,Sql Server,Migrate,我必须将一个表从MSSQL服务器迁移到MySql。问题是这个表相当大(6500万条记录),整个过程花费了太多时间。有人知道如何加快速度吗?任何有用的工具都可以改善这一点吗?只需要做一次吗?不要浪费太多时间进行优化,等到优化完成再继续 需要经常做吗?然后详细说明您当前使用的工具/技术会有所帮助。您可以将数据导出为文本,然后使用mysql load语句: 将数据本地填充'/somefolder/text\u file\u和
需要经常做吗?然后详细说明您当前使用的工具/技术会有所帮助。您可以将数据导出为文本,然后使用mysql load语句: 将数据本地填充
'/somefolder/text\u file\u和
加载到表中,一些表字段以'\t'
行结尾,行以'\n'
或者,如果将数据文件放在mysql服务器上,则可以:
将mysql服务器/文本文件上的数据填充'/somefolder\u,并使用
加载到表中,一些表字段以'\t'
行结尾,行以'\n'
我不确定mssql的语法是什么
您始终可以导出10000或100000个数据集。确保mysql表最初没有索引;加载完成后添加它们。在开始插入之前,在my.ini文件中使用以下语句,确保MySQL表存储文件足够大:
innodb_data_file_path=ibdata1:1000M:autoextend
如果您可以使用可以使用SQL Server的导入/导出向导生成的SSIS/DTS包从mssql获取数据并将其导入mysql,请尝试。(使用适当的OLEDB/ADO提供程序连接到MySQL
周五回家时启动它,周末后再检查;)确保没有列有索引,并删除任何外键(如果您使用InnoDB作为表类型)以进行导入。以下是我如何将800K记录表从MS Sql Server迁移到MySQL的 创建查询以表格格式显示数据:
SELECT [PostalCode] + ' ' +
[StateCode] + ' ' +
[Latitude] + ' ' +
[Longitude] + ' ' +
[CityName]
FROM [dbo].[PostalCode]
使用SQL Server Management Studio执行查询,并选择将结果输出到文件中(菜单:查询->结果到->结果到文件)
文件名必须是MySQL中表的名称。文件扩展名不重要
然后使用mysqlimport.exe(在Windows上)导入数据(该表必须存在于MySQL数据库中):
导入后,我必须删除表的最后2条记录,因为文件末尾包含一些垃圾:(818193行受影响)
对于800K来说,它相当快:10秒导出,然后10秒导入
希望这有帮助。类似的答案:
mysqlimport.exe --user=user_name
--columns=postalcode,statecode,latitude,longitude,cityname
--ignore-lines=2 databaseName pathToFile