qt中的mysql能存入多少行数据_Qt中提高sqlite的读写速度(使用事务一次性写入100万条数据)...

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','TT','TT')");

if (!bsuccess)

{

cout<

break;

}

}

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

db_sqlite.commit();

cout<

}

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

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

http://cdn.verydemo.com/demo_c278_i9327.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489397.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机英语一级考试试题,全国计算机一级考试试题及答案

单选题1.( )是指连入网络的不同档次、不同型号的微机&#xff0c;它是网络中实际为用户操作的工作平台&#xff0c;它通过插在微机上的网卡和连接电缆与网络服务器相连。 答案:A 难:2A、网络工作站 B、网络服务器 C、传输介质 D、网络操作系统2.通过Internet发送或接收电子邮件…

薛建儒:无人车的场景理解与自主运动

来源&#xff1a;人工智能前沿讲习一报告导读本文为西安交通大学人工智能与机器人研究所薛建儒教授&#xff0c;做的题为无人车场景计算与自主运动的研究进展的报告&#xff0c;主要从无人车概述、场景理解、自主运动、总结与展望四个方面介绍了其团队在无人驾驶领域的探索。在…

(转)HTTP 长连接和短连接

1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议&#xff0c;在传输层使用TCP协议&#xff0c;在网络层使用IP协议。IP协议主要解决网络路由和寻址问题&#xff0c;TCP协议主要解决如何在IP层之上可靠的传递数据包&#xff…

ddr4服务器内存频率_金士顿DDR4-3200服务器内存通过完整测试

全面支持第二代AMD EPYC处理器2019年8月13日北京讯&#xff0c;全球存储领袖金士顿今天宣布旗下Server Premier系列DDR4-3200 Registered DIMMs内存将支持第二代AMD EPYC™服务器处理器。最新款金士顿Server Premier内存频率高达3200MT/s&#xff0c;提供8GB、16GB和32GB三种容…

html 链接section,HTML section 标签

HTML 标签是HTML5新增的语义化标签之一。关于语义化标签的概念与作用可以参阅HTML 语义化布局概述一章节。**一.标签作用&#xff1a;**此标签的功能与标签比较类似&#xff0c;两者联系与区别简单总结如下&#xff1a;(1).可以认为是特殊。(2).更加强调独立性&#xff0c;语义…

中美科技成果转化比较分析

来源&#xff1a;创新研究近年来随着国家在不断加大科技投入&#xff0c;以及专利成果数量的快速增长&#xff0c;全社会对科技创新关注程度不断提高&#xff0c;对我国科技成果转化率低的批评不断增加&#xff0c;有文章指出“我国科技成果的转化率仅有10%&#xff0c;比美国8…

bh1750采集流程图_重大更新:STM32空气监测仪,OneNET物联网平台实时查看(原理图、PCB源文件、程序源码等)...

更新内容&#xff1a;一、SD卡记录功能。自动识别有无SD卡&#xff0c;支持4G以下SD卡。下图为SD卡记录的数据。以日期为文件名自动创建文件。记录格式为&#xff1a;时间&#xff0c;PM1.0&#xff0c;PM2.5&#xff0c;PM10&#xff0c;温度&#xff0c;湿度&#xff0c;大气…

商用计算机低温工作,突破量子计算机瓶颈!超低温芯片能在接近绝对零度的温度下工作...

如何克服量子计算机运转时产生的超高热量仍是量子计算机研究当中的一大难题。日前&#xff0c;科学家开发出一种新型的低温计算机芯片&#xff0c;能够在接近绝对零度的理论温度极限下工作。这种名为 Gooseberry 的低温系统为量子计算领域的革命奠定了基础——使新一代机器能够…

python自动化测试开发_基于python的selenium2自动化测试从基础到实战(Python3、selenium2、自动化测试、web测试)...

Selenium2是目前比较流行的一款针对web页面测试的自动化测试工具&#xff0c;他的前身是Selenium 。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等。但是目前使用Selenium2做测试的基本是采用ja…

虚拟机安装CentOS6.4

1 概述 虚拟机&#xff08;Virtual Machine&#xff09;指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统&#xff0c;运行在主机上&#xff0c;完全独立&#xff0c;虚拟机里面的所有操作不会影响主机&#xff0c;即使虚拟机崩溃了&#x…

中国人工智能产业白皮书

来源&#xff1a;北京物联网智能技术应用协会未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1…

api laravel 统一返回方法_Laravel API 错误处理:当异常时,如何返回消息

image基于 API 的项目开发越来越受欢迎&#xff0c;并且使用 Laravel 就能很容易实现。但是在针对如何处理各种异常的话题很少被提及。所以 API 的使用者们经常会抱怨除了收到 Server error &#xff0c;很少有更多的错误信息。那么&#xff0c;我们该如何优雅的处理 API 错误让…

计算机电力英语翻译,电力专业英语阅读与翻译..doc

电力专业英语阅读与翻译.电力专业英语阅读与翻译Summary of glossary 术语电力系统 (electric) power systempower generation 发电transmission system(network) 输电系统(网络)distribution system 配电系统发电 power generationpower plant 发电厂powerhouse 发电站hydropo…

python基础笔记_python基础学习笔记

一、Python四种类型的数据格式 整数----2、3、 长整数&#xff1a;指的是比较大一点的整数 浮点数----3.23、52.3EE:标记表示10的幂。 复数----&#xff08;-54J)、&#xff08;2.3-4.6J&#xff09; 二、Python字符串 a 单引号&#xff1a;单引号输出字符串&#xff0c;字符串…

Nature好文:过去150年,科学与产业经历四段情缘!

来源&#xff1a;Nature 574, 481-485 (2019) doi: 10.1038/d41586-019-03172-5Nature&#xff08;《自然》&#xff09;创刊 150 周年之际&#xff0c;历史学家保罗卢西尔&#xff08;Paul Lucier&#xff09;特别撰写系列文章&#xff0c;回顾了这 150 年来科学体系的塑造。本…

eclipse导入项目pom文件报错_eclipse导入maven管理的项目时,pom.xml第一行报错。错误如图1。而且dubbo的xml也不识别。...

展开全部dubbo的问题是因为他的官网关了 对应的xsd无法获取到对于 eclipse 来说这个文件只能改为从62616964757a686964616fe59b9ee7ad9431333337383239本地读取才能正常修改方法是提取dubbo.jar META-INF 中的dubbo.xsd文件到随意一个目录&#xff0c;建议放Eclipse目录下就好打…

python爬取网页有乱码怎么解决_Python爬取网页requests乱码

**之前有在裁判文书上爬取数据&#xff0c;这段时间重新运行爬虫后发现无法获取网页数据&#xff0c; 找了一下发现requests网页源码返回的是乱码** &#xff08;如下截取一部分返回的数据&#xff1a;不知道是不是网站对网页内容进行了加密&#xff0c;请问如何解决这个问题&a…

北京联合大学计算机学院在哪个校区,北京联合大学各校区联系地址大全

出国留学网考研院校频道为大家提供北京联合大学各校区联系地址大全&#xff0c;希望能帮助到大家。北京联合大学下设14所学院&#xff1a;北京联合大学应用文理学院 地址&#xff1a;海淀区北土城西路197号 邮编&#xff1a;100191北京联合大学师范学院 地址&#xff1a;朝阳区…

spring基础整理

spring基础教程&#xff1a;https://www.tutorialspoint.com/spring/spring_overview.htm 注入实例 <bean id"" class""> <constructor-arg ref"beanId" /> </bean> <bean id"beanId" class/> 转载于:https:/…

Gartner 2019年超融合魔力象限:新增深信服,国内华为、华云在榜

来源&#xff1a;云头条近日&#xff0c;国际权威研究分析机构Gartner公布了2019全球《超融合基础设施魔力象限》。报告显示国内仅有三家云计算厂商进入2019超融合基础设施魔力象限&#xff0c;分别是深信服、华为、华云数据。深信服超融合&#xff08;sangfor aCloud&#xff…