所以我有一个 CSV 格式的 1GB 文件,我将其转换为 SQLite3 数据库
column1;column2;column3
1212;abcd;20090909
1543;efgh;20120120
除了我有 12 列。现在,我需要读取和排序这些数据并重新格式化输出,但是当我尝试这样做时,似乎我的 RAM 用完了(使用向量)。我从 SQLite 中读取它并将文件的每一行存储在一个结构中,然后将其推回双端队列。就像我说的,当 RAM 使用量接近 2gb 时,我的内存用完了,应用程序崩溃了。我尝试使用 STXXL,但显然它不支持非 POD 类型的向量(因此它必须是 long int、double、char 等),并且我的向量主要由 std::string、一些 boost::date 和一个 double 组成价值。
基本上我需要做的是将在特定列中具有相同值的所有“行”组合在一起,换句话说,我需要根据一列对数据进行排序,然后使用它。
关于我如何阅读所有内容或至少对其进行排序的任何方法?我会用 SQLite3 来做,但这似乎很耗时。也许我错了。
谢谢。