• 4383阅读
  • 2回复

[提问]关于大批量写入数据库记录的效率问题 [复制链接]

上一主题 下一主题
离线xuang
 

只看楼主 倒序阅读 楼主  发表于: 2013-07-24
想请教一下各位,如果大批量地向数据写入记录(至少几千条记录),怎样做能提高效率?
我目前用Qt只会这样做:
QSQLQuery query;
for (int i=0;i<10000;i++)
{
query.prepare("insert into ...");
query.bindValue(":a", a);
query.bindValue(":b", b);
...
query.exec();
}
这样做是不是效率很低啊?有没有别的方式来批量写入记录?
离线jdwx

只看该作者 1楼 发表于: 2013-07-24
回 楼主(xuang) 的帖子
楼主google一下“数据库事务处理”,就是批量写入数据库的功能,前提是数据库支持事务处理。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线XChinux

只看该作者 2楼 发表于: 2013-07-25
用事务处理。插入前,先调用db.transact(), 插入过程完毕后,调用db.comit(),

当然,是否能用事务处理,要看你的数据库和driver plugin是否支持。

二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个