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