gpt4 book ai didi

mysql - 使用 C API 高效创建非常大的 mysql INSERT 查询

转载 作者:行者123 更新时间:2023-11-30 01:35:05 26 4
gpt4 key购买 nike

我在文件中获取了数据,我需要将其写入数据库。我尝试过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 查询的方法?

感谢任何帮助。

最佳答案

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

LOAD DATA INFILE
The LOAD DATA INFILE statement reads rows from a text file into a table at a very high speed.

Speed of INSERT Statements
When loading a table from a text file, use LOAD DATA INFILE. This isusually 20 times faster than using INSERT statements. See Section13.2.6, “LOAD DATA INFILE Syntax”.
...
INSERT is still much slower for loading data than LOAD DATA INFILE, even when using the strategies just outlined.

关于mysql - 使用 C API 高效创建非常大的 mysql INSERT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17016703/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com