2011-12-09 22 views
1

我需要一些关于将大量数据传输到远程托管的MySQL数据库的建议。 (godaddy)MSSQL到远程MySQL 700k行

我收到了一个700k行的CSV文件,并将其导入MSSQL在我的开发机器上,并写了一些快速实用程序。

首先是产生较小的1微克(最大值由主机允许的),其可经由 phpMyAdmin的直接导入的CSV文件。 max of 1 meg http://xtubedownloads.com/public/starfield.png

我只有约1600行每meg这意味着约437个人手动上传。 不可行,所以我放弃了这项技术。

接下来我尝试使用MySQL .NET连接器,并通过ODBC从MS Access和MS Excel直接传输。 失败。

最后我写了一个.NET Winform应用程序,它从本地SQL Server数据库获取数据,然后使用.NET MySQL数据程序集通过标准插入查询更新远程MySQL数据库。

我有winform应用程序产生4个线程,每个插入一个新的独特的记录,以最大化我的输入在每个循环的四个新记录,但仍然只获得每天约100k记录。

(我曾试图增加至10个线程和运行应用程序的多个实例,但这些转让是内存猪和4是我所有的机器可以没有问题)

我在本地安装MySQL管理工具(MySQL WorkBench 5.2CE)希望能够以某种方式通过mysql管理工具传输MSSQL数据。 无法做到这一点。

使用标准工具(如MSAcess和MSExcel),所有计算机ODBC尝试失败。 (可能是一些GoDaddy的配置问题,或者说我是运行64位操作系统和MySQL ODBC工具是32的事实?)

我有连接GoDaddy的能力远程托管的MySQL服务器,所以我唯一的其他的想法将700k条记录放在服务器上的Access数据库中,并创建10或20个WCF服务来完成插入MySQL数据库的工作。

也许消除必须通过电线传输每一行的延迟将大大增加插入速度?

有一种更高效的方法,我现在拥有一台运行24/7全天候插入记录的机器。

回答

1

什么是这样的:

  • 使用PHP脚本来检索SQL文件的压缩版本(有,比方说,file_get_contents()函数),并将其保存在服务器本地到MySQL。您应该可以下载比使用HTML上传表单更多的数据。我假设你不能通过FTP,顺便说一句:)

  • 使用Bigdump,一个交错的导入工具,将数据逐个导入到MySQL。这样你就可以避免超时/其他相关问题。

祝你好运!

+0

Bigdump的Big +1。我测试了一些记录,它与csv一起工作。稍后我会写一个快速的应用程序,以输出大小为50k的csv。再次感谢 – DaveCS

0

所有的机器ODBC尝试失败都使用标准工具,如 作为MSAcess和MSExcel。 (可能是一些GoDaddy的配置问题或 事实,我在运行64位操作系统和MySQL ODBC工具是32?)

用C尝试:\ WINDOWS \ Syswow64资料\ odbcad32.exe的,而不是32位,位于管理工具菜单中。

我发现Heidi Sql对于连接到mySQL和MsSQL数据库都非常有用。 http://www.heidisql.com