baoniu 发表于 2013-9-23 00:12:33

QT 快速插入数据 10万数据2.8秒

本帖最后由 baoniu 于 2013-9-23 00:14 编辑

09年的机器,4G内存,AMD5200
插入数据库用了2797毫秒QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("sql.db");
QSqlQuery query;
    query.exec("create table student(id int primary key,name varchar(20))");
QTime *timer=new QTime;
    timer->start();
    if(query.at()<100000){
      db.transaction();   //开始一个事务
      query.prepare("insert into student values(?,?)");
      QVariantList uid,uname;
      for(int i=1;i<100000;i++)
            {
                uid<<i;
                uname<<QString("%1").arg(qrand());
            }
      qDebug()<<"ready!now";
      query.addBindValue(uid);
      query.addBindValue(uname);
      query.execBatch();

      db.commit();    //提交
    }
    qDebug()<<timer->elapsed();

yafeilinux 发表于 2013-9-23 13:44:05

sqlite是很快的。

baoniu 发表于 2013-9-23 20:22:54

yafeilinux 发表于 2013-9-23 13:44 static/image/common/back.gif
sqlite是很快的。

唉,是的,在mysql里面花了28秒……

pursue 发表于 2013-12-3 21:32:02

我用mysql插入1000条记录就用了28秒,不过插入的记录比较大,一个记录3000个字节左右,插入之前还把数据转换成QString。
页: [1]
查看完整版本: QT 快速插入数据 10万数据2.8秒