Qt中提高sqlite的读写速度
来源:互联网 发布:三国志9优化伴侣是什么 编辑:程序博客网 时间:2024/06/05 05:26
#include <QtCore/QCoreApplication>
#include <QtSql>
#include <iostream>
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','TT','TT')");
if (!bsuccess)
{
cout<<"Error occur"<<endl;
break;
}
}
// 提交事务,这个时候才是真正打开文件执行SQL语句的时候
db_sqlite.commit();
cout<<"10000条数据耗时:"<<tmpTime.elapsed()<<"ms"<<endl;
}
其实QT 操作sqlite数据库增加事务的功能就是上面例子中蓝色字体标出的两句话,如果去掉这两句话,程序又会还原为:打开文件——执行 query.exec(...)——关闭文件。大家可以试一下,添加这两句即增加事务以后数据插入的速度明显提高很多。
在入库和更新过程中按照数据库事务的思想进行设计:SQLite执行入库、更新操作的方式是,sql语句执行对象句柄调用库函数打开文件、调用函数执行sql语句、关闭文件。这样的执行方式对于数量级别超大的文件的弊端就是每次执行sql语句的时候都要打开文件(假设百万级数量级的数据,就要打开和关闭文件百万次),对于数据库的入库和更新操作时间主要都浪费到了文件的打开和关闭操作上,所以这里增加事务以解决该问题。
转自:
- Qt中提高sqlite的读写速度
- Qt中提高sqlite的读写速度
- Qt中提高sqlite的读写速度
- Qt中提高SQLite的读写速度
- Qt中提高sqlite的读写速度
- Qt中提高sqlite的读写速度
- Qt中提高sqlite的读写速度
- Qt中提高sqlite的读写速度
- 详解Qt 中如何提高Sqlite读写速度
- 提高Qt SQLite读写性能
- Qt提升对SQLite数据库的读写速度
- Qt提升对SQLite数据库的读写速度
- 请问如何提高文件的读写速度
- 提高SD读写速度的若干建议
- QT读写Sqlite数据库
- 用IO完成端口提高读写速度的探讨试验
- 用IO完成端口提高读写速度的探讨试验
- 关于Windows文件读写(提高读写速度)
- 算法训练:Unique Binary Search Trees
- 浪起来!使用 drawBitmapMesh 实现仿真水波纹效果
- finally block does not complete normally
- hdu1789 Doing Homework again (贪心)
- 第二届蓝桥杯第八题 上三角
- Qt中提高sqlite的读写速度
- 南宁H5EDU学员fullpage框架项目
- Java线程面试题 Top 50
- DAY4学习视频笔记
- 评测下各个搜索引擎~(电子设计与单片机关键词)
- MATLAB求解二元(多元)函数极值
- Android常用开源项目(三)
- 2017.04 自考总结--套路无处不在
- (C语言)通过对二叉树的先序和中序遍历构建该二叉树,然后输出该二叉树的层序遍历结果