Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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_Insert - Fatal编程技术网

如何在MySQL中插入大量行?

如何在MySQL中插入大量行?,mysql,insert,Mysql,Insert,例如,我如何通过一个查询将100000行插入MySQL表中?据我所知,您不能。您将需要一个循环。您可以使用insert语句进行批插入,但您的查询不能大于(略小于)max_allowed_数据包 对于100k行,根据行的大小,您可能会超过这个值 一种方法是把它分成几块。无论如何,这可能是个好主意 或者,您可以使用“加载数据填充”(或“加载数据本地填充”)从制表符分隔(或其他分隔)的文件加载数据。有关详细信息,请参见文档 加载数据不受允许的最大数据包限制 insert into $table val

例如,我如何通过一个查询将100000行插入MySQL表中?

据我所知,您不能。您将需要一个循环。

您可以使用insert语句进行批插入,但您的查询不能大于(略小于)max_allowed_数据包

对于100k行,根据行的大小,您可能会超过这个值

一种方法是把它分成几块。无论如何,这可能是个好主意

或者,您可以使用“加载数据填充”(或“加载数据本地填充”)从制表符分隔(或其他分隔)的文件加载数据。有关详细信息,请参见文档

加载数据不受允许的最大数据包限制

insert into $table values (1, a, b), (2, c, d), (3, e, f);
这将执行3行的插入。根据需要继续努力,达到10万人。在进行ETL工作时,我以这种方式执行~1000个块

如果您的数据静态地保存在一个文件中,那么转换它并使用load data Infle将是最好的方法,但我猜您这样问是因为您做了类似的事情

还请注意其他人关于限制查询长度的最大允许数据包大小的说法。

尝试使用LoadFile() 或者将您的数据转换成XML文件,然后使用Load and Extract()函数将数据加载到MySQL数据库中

这是一个查询和最快的选项

即使我也在做同样的事情,我有文件,如果1.5GB,大约有数百万行。在我的案例中,我使用了这两个选项。

最明显的问题是“来自什么?”。如果答案来自内存,那么开始非常仔细地键入SQL文件。否则,请使用适当的语言和环境。