Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
并行上传数据到mysql数据库_Mysql_Database_Upload - Fatal编程技术网

并行上传数据到mysql数据库

并行上传数据到mysql数据库,mysql,database,upload,Mysql,Database,Upload,我有一个mysql数据库和一个74 GB大小的表。我目前正在使用mysql命令将这些数据加载到mysql数据库中。它花了10多个小时仍在运行。有没有办法将数据并行加载到mysql数据库中。一种方法是将表数据实际拆分为多个文件,然后对每个文件调用load。但是,这更像是一种黑客行为。有什么是stackoverflowers遵循的吗 谢谢。并行插入到一个表中(为了提高速度)是胡说八道。 而且拆分表格也不是很明智的方式。 您必须确保表中没有索引。 如果在一个单独的磁盘/控制器上有一个源文件就好了 确保

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


谢谢。

并行插入到一个表中(为了提高速度)是胡说八道。
而且拆分表格也不是很明智的方式。
您必须确保表中没有索引。

如果在一个单独的磁盘/控制器上有一个源文件就好了

确保源文件和数据库存储在快速磁盘上,并且没有碎片。我认为,为表更改数据库引擎以加快导入速度,然后在导入后将其更改回来是值得的。我会尝试使用INNODB和MyISAM引擎,看看它们是否更快

删除所有索引,并在完成后重新添加它们。无论如何,您都必须重新优化它们,而且只执行一次要快得多。当您重新添加它们时,将它们合并到一个alter语句中(速度更快)

将数据导出为方便的批量加载格式。您可以很容易地将10000行或更多行数据库放入文件的一行中

PHPMyAdmin和MySQL文档都有一些设置,您应该使用这些设置来尽可能延迟,以加快读取速度。确保没有其他任何东西正在使用此数据库和/或表。那只会让事情变慢

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

将文件传输到DB服务器并从那里导入(不要通过网络从另一台机器导入)


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

此外,将行合并为较大的插入将减少导入过程中的文本和输出。你不希望你的输入输出很多输出。如果你有这个优势,考虑把尽可能多的内存和/或重新启动MySQL与更大的缓冲区,使事情变得更容易和更快。