0

我在文件中获取数据,我需要将其写入数据库。我尝试了一个 NoSQL 解决方案,它会导致极高的内存使用率。现在我正在尝试使用 C API 在 MySQL 中实现相同的功能。

需要写入MySQL数据库的数据是120+百万条记录。我基本上都可以正常工作,但是我认为创建 SQL 语句的方式有点慢。

这是我使用的代码:

sprintf(queryData, "INSERT INTO table(column1, column2, column3) VALUE");
for (i = 0; i < records; i++){
    sprintf(queryTemp, "(%s,%f,%f)", stringValue, floatValue1, floatValue2);
    strcat(queryData, queryTemp);
}

那里还有一些代码在不同的记录之间添加了“,”。

有没有比使用字符串操作更快的创建 MySQL 查询的方法?

任何帮助表示赞赏。

4

1 回答 1

0

由于您的数据在文件中,您可能需要考虑使用LOAD DATA INFILE而不是INSERT语句。

LOAD DATA INFILE
LOAD DATA INFILE 语句以非常高的速度将文本文件中的行读入表中。

INSERT 语句的速度
从文本文件加载表时,使用 LOAD DATA INFILE。这通常比使用 INSERT 语句快 20 倍。请参见第 13.2.6 节,“LOAD DATA INFILE 语法”。
...
INSERT 加载数据的速度仍然比 LOAD DATA INFILE 慢得多,即使使用刚刚概述的策略也是如此。

于 2013-06-10T04:15:18.013 回答