使用C ++ / cppconn从大型MySQL表中检索数据

时间:2014-08-06 13:34:05

标签: c++ mysql sql

我的mySQL数据库中有一个大约有1亿行的表 - 我想将其导出为不同的格式。

我正在使用libmysqlcppconn7从C ++连接到数据库。在运行如下所示的查询时,该过程占用了我所有的记忆:

unique_ptr<sql::PreparedStatement> statement(getConnection()->prepareStatement(
    "SELECT " + joinedColumnNames + " FROM " + table
));
unique_ptr<sql::ResultSet> queryResult(statement->executeQuery());
while (queryResult->next()) {
    // process columns and store them elsewhere
}

这是因为上面的代码试图将整个表加载到内存中。我想逐行阅读。我找到了FLAG_NO_CACHE和php&#39; mysql_use_result,但我找不到libcppconn的任何内容。

如何在C ++中执行此操作?

我目前的解决方法是首先SELECT count(*) FROM table,然后在查询中使用LIMIT start,1000000一次获取100万行。这有效,但感觉不对。

0 个答案:

没有答案