Пытаюсь загнать большой текстовый файл 30ГБ (500 млн строк) в базу данных SQLITE. Миллион строк влетают очень быстро, а дальше запись по мере роста БД начинает замедлятся.
....
#include <iostream>
#include <fstream>
using namespace std;
....
char str[99999];
ifstream in;
in.open(filename.toAscii());
in.seekg(0,ios::beg);
db.transaction();
QSqlQuery query;
query.prepare("INSERT INTO tablename (line, value) "
"VALUES (:line, :value)");
while(in){
in.getline(str, 99999);
QString qstr = QString::fromLocal8Bit(str);
if(in && qstr != "")
{
QStringList qstrlst = qstr.split(";");
QString line = qstrlst.at(0);
QString value = qstrlst.at(1);
query.bindValue(":line", line);
query.bindValue(":value", value);
query.exec();
}
}
db.commit();
in.close();
....