qt mysql 系统时间_Qt 计算运行时间的例子

sqlite数据库本质上来讲就是一个磁盘上的文件,所以一切的数据库操作其实都会转化为对文件的操作,而频繁的文件操作将会是一个很好时的过程,会极大地影响数据库存取的速度。例如:向数据库中插入100万条数据,在默认的情况下如果仅仅是执行query.exec("insert into DataBase(......) values(......)");就会打开和关闭文件100万次,所以速度当然会很慢。sqlite数据库是支持事务操作的,于是我们就可以通过事务来提高数据库的读写速度。事务的基本原理是:数据库管理系统首先会把要执行的sql语句存储到内存当中,只有当commit()的时候才一次性全部执行所有内存中的数据库。下面是一个简单的QT sqlite数据库事务的例子:

#include

#include

#include

using namespace std;

int main(int argc,char *argv[])

{

QCoreApplication a(argc,argv);

QsqlDatabase db_sqlite = QsqlDatabase::addDatabase("QsqlITE","connsqlite");

db_sqlite.setDatabaseName("sqliteDB.db3");

db_sqlite.open();

QsqlQuery query("",db_sqlite);

bool bsuccess = false;

QTime tmpTime;

// 开始启动事务

db_sqlite.transaction();

tmpTime.start();

for(int i = 0; i<100000; i++)

{

bsuccess = query.exec("insert into DataBase(D_1,D_2,D_3,D_4,D_5) values('TT','TT','TT')");

if (!bsuccess)

{

cout<

break;

}

}

// 提交事务,这个时候才是真正打开文件执行sql语句的时候

db_sqlite.commit();

cout<

}

其实QT 操作sqlite数据库增加事务的功能就是上面例子中蓝色字体标出的两句话,如果去掉这两句话,程序又会还原为:打开文件——执行query.exec(...)——关闭文件。大家可以试一下,添加这两句即增加事务以后数据插入的速度明显提高很多。

在入库和更新过程中按照数据库事务的思想进行设计:sqlite执行入库、更新操作的方式是,语句执行对象句柄调用库函数打开文件、调用函数执行语句、关闭文件。这样的执行方式对于数量级别超大的文件的弊端就是每次执行语句的时候都要打开文件(假设百万级数量级的数据,就要打开和关闭文件百万次),对于数据库的入库和更新操作时间主要都浪费到了文件的打开和关闭操作上,所以这里增加事务以解决该问题。

总结

以上是编程之家为你收集整理的Qt 计算运行时间的例子全部内容,希望文章能够帮你解决Qt 计算运行时间的例子所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值