我希望从文本文件(filename2)中批量读入数据写入数据库(filename1)中,但不知为何,速度出奇的慢。500个记录(读取的文本数据为24k左右,生成的数据库为500K)竟然用了一分多钟!请帮忙看看我的代码存在什么问题?有什么好的办法可以快速批量向数据库中导入数据?谢谢!
QSqlDatabase dbconn = QSqlDatabase::addDatabase("QSQLITE");
dbconn.setDatabaseName(filename1); //数据库文件
QSqlQuery query;
query.exec(QString("create table test(id varchar, e varchar, t varchar, c varchar);"));
QFile file(filename2);//从文本文件中读取数据
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
int i = 0;
QTextStream in(&file);
QStringList lines = in.readAll().split("\n");
query.prepare("insert into test values(?, ?, ?, ?)");
QVariantList v1, v2, v3, v4;
while(i < 500){
QString line = lines[i];
QStringList s = line.split("\t");
v1 << i++;
v2 << s[2];
v3 << s[3];
v4 << s[4];
}
query.addBindValue(v1);
query.addBindValue(v2);
query.addBindValue(v3);
query.addBindValue(v4);
if(!query.execBatch())
qDebug() << query.lastError();