找回密码
 立即注册
收起左侧

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

3
回复
7195
查看
[复制链接]
累计签到:36 天
连续签到:1 天
来源: 原创 2013-9-23 00:12:33 显示全部楼层 |阅读模式

马上注册,查看详细内容!注册请先查看:注册须知

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

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

  20.         db.commit();    //提交
  21.     }
  22.     qDebug()<<timer->elapsed();
复制代码
回复

使用道具 举报

累计签到:1569 天
连续签到:1 天
2013-9-23 13:44:05 显示全部楼层
sqlite是很快的。
回复 支持 反对

使用道具 举报

累计签到:36 天
连续签到:1 天
2013-9-23 20:22:54 显示全部楼层
yafeilinux 发表于 2013-9-23 13:44
sqlite是很快的。

唉,是的,在mysql里面花了28秒……
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-12-3 21:32:02 显示全部楼层
我用mysql插入1000条记录就用了28秒,不过插入的记录比较大,一个记录3000个字节左右,插入之前还把数据转换成QString。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了