1

我创建了一个存储过程。我用大量数据(大约 1L 行)获取游标。之后,我在其中调用另一个程序来执行与所需数据相关的所有计算。我创建临时表并尝试在其中插入此计算数据。但是需要9.5分钟左右的时间太长了。我想知道如何通过使用最少的“INSERT”查询来插入批量数据,因为 1L 插入查询会导致最差的性能。谁能帮我??

4

3 回答 3

8

您可以使用以下 SQL 语句进行批量插入:

INSERT INTO TABLE_A (A, B, C, D) VALUES
(1,1,1,1),
(2,2,2,2),
(3,3,3,3),
(4,4,4,4);
于 2012-05-17T12:07:47.153 回答
2

你的问题有点含糊,但你可以使用 BULK 将数据加载到 mysql 中

load data infile...

检查以下链接:

如果您需要在加载期间处理数据,最好先将数据批量加载到临时表中,然后针对它运行一些存储过程来处理并填充主表。

希望这可以帮助。

于 2012-05-17T12:15:41.720 回答
0

您也可以将记录插入到内存表中。在完成插入内存表后,以下代码可以从内存表中插入许多行。

INSERT INTO TABLE_A (A, B, C, D)
SELECT A,B,C,D FROM INMEMORY_TABLE

DELETE FROM INMEMORY_TABLE
于 2012-05-17T13:56:59.230 回答