并行地将数据上传到mysql数据库

时间:2010-06-05 00:33:52

标签: mysql database upload

我有一个mysql数据库和一个大小为74 GB的表。我目前正在使用mysql命令将此数据加载到mysql数据库中。花了10多个小时仍在运行。有没有办法将数据并行加载到mysql数据库中。一种方法是将表数据实际拆分为多个文件,然后在每个文件上调用load。但是,它更像是一个黑客。是否存在stackoverflowers的内容?

谢谢。

2 个答案:

答案 0 :(得分:1)

确保您的源文件和数据库存储在快速磁盘上,并且不会碎片化。我已经看到值得更改表的数据库引擎以加快导入,然后在导入后将其更改回来。我会尝试使用INNODB和MyISAM引擎来查看是否更快。

删除所有索引并在完成后将其添加回来。无论如何你都必须重新优化它们,只执行一次它会快得多。当您将它们添加回来时,将它们组合成一个alter语句(它更快)。

将您的数据导出为方便的批量加载格式。您可以非常轻松地将10,000行或更多行数据库放入文件的单行中。

PHPMyAdmin和MySQL Docs具有您应该使用的设置,以尽可能地延迟加速读取。确保没有其他人正在使用此数据库和/或表。这只会让事情变慢。

确保您提供的编码与数据库上的编码匹配。

将文件传输到数据库服务器并从那里导入(不要通过网络从其他计算机导入)。

如果可以,并且您正在使用它,请关闭复制。如果可以,并且您正在使用它,请关闭日志记录。二进制日志会使您必须写入的数据量翻倍。

答案 1 :(得分:0)

平行插入一张桌子(出于速度目的)是无稽之谈 分裂表也不太明智。
您必须确保表中没有索引 在单独的磁盘/控制器上安装源文件会很不错。