我需要一些关于将大量数据传输到远程托管的MySQL数据库的建议。 (godaddy的)
我收到了一个700k行的CSV文件并将其导入我的开发机器上的MSSQL并编写了一些快速实用工具。
第一个是创建可以直接导入的较小的1 meg(主机允许的最大值)csv文件 phpMyAdmin的。 max of 1 meg http://xtubedownloads.com/public/starfield.png
每个meg只有大约1600行,这意味着大约437个单独的手动上传。 不可行,所以我放弃了这种技术。
接下来,我尝试使用MySQL .NET连接器,并通过ODBC从MS Access和MS Excel直接传输。 失败了。
最后,我编写了一个.NET winform应用程序,它从我的本地SQL Server数据库获取数据,然后使用.NET MySQL数据程序集通过标准插入查询更新远程MySQL数据库。
我有winform应用程序产生4个线程,每个线程插入一个新的唯一记录,以最大化我的输入在每个循环的四个新记录,但仍然每天只获得约10万条记录。
(我已尝试增加到10个线程并运行应用程序的多个实例,但这些传输是内存占用,而4是关于我的所有机器可以没有问题)
我在本地安装了mysql管理工具(MySQL WorkBench 5.2CE),希望能够通过mysql管理工具以某种方式传输MSSQL数据。 无法做到。
所有机器ODBC尝试都使用MSAcess和MSExcel等标准工具失败。 (可能是一些godaddy配置问题或我运行64位操作系统和Mysql odbc工具是32的事实?)
我确实能够远程连接godaddy托管的MySQL服务器,所以我唯一的另一个想法是将700k记录放在服务器上的Access数据库中,并创建10或20个WCF服务来完成插入MySQL的工作数据库。
也许消除必须通过电线传输每一行的延迟会大大增加插入速度?
有一种方法比我现在拥有的方法更有效,一台机器每天24小时运行只需插入记录。
答案 0 :(得分:1)
这样的事情:
使用php脚本检索SQL文件的压缩版本(例如,使用file_get_contents())并将其保存在MySQL本地服务器中。您应该能够下载比使用HTML上载表单更多的数据。我认为你不能通过FTP做到这一点,顺便说一下:)
使用交错导入工具Bigdump将数据逐个导入MySQL。这样您就可以避免超时/其他相关问题。
答案 1 :(得分:0)
所有机器ODBC尝试都使用标准工具失败 作为MSAcess和MSExcel。 (可能是一些godaddy配置问题或 事实上,我正在运行64位操作系统,而Mysql odbc工具是32?)
尝试使用C:\ Windows \ SysWOW64 \ odbcad32.exe而不是管理工具菜单中的32位。
我发现Heidi Sql非常适用于连接mySQL和MsSQL数据库。 http://www.heidisql.com