sqlite数据插入效率

news2024/9/20 14:35:42

一、程序效率测试

时间相关接口:
        int gettimeofday(struct timeval*tv, struct timezone *tz);
功能:得到从1970年1月1日0时0分0秒到现在的秒数。<可以利用该函数来计算一个程序的运行时间,只需在程序前后调用该函数,并用后来的函数时间减去开始的函数时间就可以。注意单位的转变。>        精度到微秒
参数:tv:获取到的秒数
结构体:   struct timeval {
               time_t      tv_sec;     /* seconds */          秒
               suseconds_t tv_usec;    /* microseconds */     微妙    1s=1000000us
           };

        tz:关于时区
 结构体:  struct timezone {
               int tz_minuteswest;     /* minutes west of Greenwich */  格林威治向西的分钟数
               int tz_dsttime;         /* type of DST correction */      夏令时修正的类型
           };
返回值:成功:0;     失败:-1

二、提高sqlite数据插入效率

1、开启事务机制

所谓”事务“就是指一组SQL命令,这些命令要么一起执行,要么都不被执行。

在SQLite中,每调用一次sqlite3_exec()函数,就会隐式地开启了一个事务,如果插入一条数据,就调用该函数一次,事务就会被反复地开启、关闭,会增大IO量。

如果在插入数据前显式开启事务,插入后再一起提交,则会大大提高IO效率,进而加数据快插入速度。

开启事务:BEGIN;/BEGIN TRANSACTION;

将事务的修改保存到数据库中:COMMIT;    /END TRANSACTION;

2、关闭写同步(危险)

synchronous Pragma 获取或设置当前磁盘的同步模式,该模式控制积极的 SQLite 如何将数据写入物理存储。
在SQLite中,数据库配置的参数都由编译指示(pragma)来实现的,而其中synchronous选项有三种可选状态:full、normal、off。
full写入速度最慢,但保证数据是安全的,不受断电、系统崩溃等影响;
而off可以加速数据库的一些操作,但如果系统崩溃或断电,则数据库可能会损毁

PRAGMA synchronous = OFF;

3、执行准备

事先将SQL语句编译好,然后再一步一步(或一行一行)地执行。执行时提高速度。

1)sqlite3_prepare_v2() 创建sqlite3_stmt语句对象;
2)sqlite3_bind_*() 绑定参数值到sqlite3_stmt;
3)sqlite3_step() 运行sql语句,可以是一次,也可以是循环执行
4)sqlite3_reset() 重置sqlite3_stmt对象;
5)sqlite3_finalize() 销毁sqlite3_stmt对象。

例如:将文件插入到数据库中。

注:开启事务机制前后效率比较:(单位:秒)

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

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

相关文章

安捷伦Agilent N9344C手持频谱分析仪

安捷伦Agilent N9344C手持频谱分析仪 安捷伦Agilent N9344C手持频谱分析仪&#xff08;HSA&#xff09; 主要特性和功能 获得专为现场使用设计的性能&#xff1a;便携耐用&#xff0c;无风扇设计&#xff1b;无论白天还是夜晚均可显示清晰的画面&#xff1b;电池使用时间为 4 …

大模型开发转行全攻略:必备知识、技能与学习路径详解,大模型零基础入门到精通

引言 随着人工智能和大模型&#xff08;如GPT-4、BERT等&#xff09;技术的快速发展&#xff0c;越来越多的专业人士希望转行进入这一领域。大模型开发涉及复杂的技术体系和多样的应用场景&#xff0c;对从业者的知识和能力提出了较高要求。本文将详细解析转行大模型开发所需的…

CasaOS系统本地安装Gopeed高速下载软件并实现异地远程访问下载文件

文章目录 前言1. 更新应用中心2.Gopeed安装与配置3. 本地下载测试4. 安装内网穿透工具5. 配置公网地址6. 配置固定公网地址 前言 本文主要介绍如何在轻NAS系统CasaOS小主机中安装支持全平台的高速下载器Gopeed&#xff0c;并结合内网穿透工具配置公网地址实现远程访问本地主机…

java知识点——I/O输入输出处理(二)

读取字符流&#xff1a; 由于字符输入流的read()方法返回的是int类型的值&#xff0c;如果想获得字符就需要进行强制类型转换&#xff0c;所以输出语句中将变量len强转为了char类型。 public static void main(String[] args) throws IOException {//创建FileReader对象FileRe…

PHP一体化解决方案高效整合与优化学校管理系统小程序源码

一体化解决方案&#xff0c;让学校管理系统焕发新生✨ &#x1f3eb; 开篇&#xff1a;传统管理的瓶颈与挑战 在快节奏的教育时代&#xff0c;传统的学校管理系统是否让你感到力不从心&#xff1f;&#x1f914; 信息孤岛、流程繁琐、效率低下...这些问题是否正困扰着你的工作…

巴黎奥运会引发体育健身热潮:气膜体育馆成为新宠—轻空间

随着巴黎奥运会的成功举办&#xff0c;全球范围内掀起了一股体育健身的热潮。各地的健身场所迎来了前所未有的参与热情&#xff0c;其中&#xff0c;融合了体育、娱乐、休闲等多种业态的综合气膜体育馆因其独特的优势&#xff0c;迅速成为群众健身的新宠&#xff0c;成为了大众…

PHP一键创建全球参与探索现代在线投票系统

一键创建全球参与探索现代在线投票系统 &#x1f310;✨ &#x1f680; 开篇&#xff1a;解锁全球互动新纪元 在这个数字化飞速发展的时代&#xff0c;每一个声音都值得被听见&#xff0c;每一份意见都能跨越山海相连。想象一下&#xff0c;只需轻轻一点&#xff0c;就能发起…

如何读懂以太坊源代码

以下是一个学习以太坊源代码的清晰思路&#xff1a; 一、前期准备 基础知识储备&#xff1a; 熟悉区块链的基本概念&#xff0c;如区块、交易、共识机制、哈希函数等。了解 Go 语言&#xff08;以太坊主要使用 Go 语言编写&#xff09;的基本语法和编程概念。 工具准备&#x…

包装和类练习(1)

目录 1.移除元素 2.删除有序数组中的重复项 3.合并两个有序数组 4.实现ArrayList类 4.下列在Java语言中关于数据类型和包装类的说法&#xff0c;正确的是&#xff08;&#xff09; 5. boolean类型没有包装用的类&#xff0c;这句话是否正确&#xff1f; 1.移除元素 这里使用…

今年读过最绝的一本书!几乎把ChatGPT讲透了——<ChatGPT 从⼊⻔到精通>

这本书从⼊⻔到精通&#xff0c;介绍了 ChatGPT 的基础知识、实现⽅法、进阶应⽤以及最新进展等多个⽅⾯。 ChatGPT 作为⼀种强⼤的⾃然语⾔处理模型&#xff0c;其应⽤前景⼴泛&#xff0c;可以应⽤于⾃然语⾔⽣成、对话系统、推荐系统、知识图谱构建、智能家居、⼈⼯智能教育…

【SQL】常见语句合集

SQL常见语句合集 一. 新建表1.1 语句1.2 结果 二. 新增数据2.1 语句2.2 结果 三. 新增字段列3.1 语句3.2 结果3.3 扩展 四. 更新指定数据4.1 语句4.2 结果 五. 更新指定列5.1 语句&#xff08;长度&#xff09; 六. 删除字段列6.1 语句 七. 删除指定数据7.1 语句 八. 查询 一. …

Spring拦截器与Servlet过滤器区别

前言 温馨提醒:希望读者了解Spring拦截器和Servlet过滤器基础知识 目录 前言 位置和层面 使用场景 配置方式 生命周期 执行顺序 总结 Spring拦截器基础知识https://blog.csdn.net/Dreamkidya/article/details/141825688?spm1001.2014.3001.5501 Servlet过滤器基础知识h…

计算机视觉软件教学平台

1、基本介绍 计算机视觉软件教学平台是中智讯公司开发的一款面向人工智能相关专业机器视觉方向的综合型实验平台&#xff0c;主要满足&#xff1a;图像处理、图像识别、机器视觉应用、边缘计算应用、智能算法等课程的实验和实训&#xff0c;是基于新工科和工程教育思维和专业改…

IPv6的部署会影响现有IPv4网络的运行吗

IPv6是新一代的互联网协议&#xff0c;到现在为止&#xff0c;担心它是否会影响现有IPv4网络的运行的人不在少数。 先来了解下IPv4和IPv6的区别。IPv4使用的是32位地址&#xff0c;IPv6使用的是128位地址&#xff0c;很多人现在不理解了&#xff0c;这和地址数有关系吗&#xf…

【从零开始学爬虫】采集58同城房源数据

本文以采集北京市58同城房源数据为例进行演示&#xff1a; l 采集网站 【场景描述】采集58同城房源数据。 【使用工具】前嗅ForeSpider数据采集系统 http://www.forenose.com/view/commodity/forespider.html 【入口网址】 https://bj.58.com/xiaoqu/?PGTID0d000000-000…

【小呆的热力学笔记】理想热力循环

文章目录 5.理想热力循环5.1 卡诺定理5.2 卡诺循环5.3 逆向卡诺循环 5.理想热力循环 5.1 卡诺定理 考虑这样的一个实际的热力循环&#xff0c;其过程为存在一个高温热源&#xff0c;工作介质从该高温热源中吸取热量Q1&#xff0c;其中一部分通过工作介质对外做功转化为机械功…

idea安装并使用maven依赖分析插件:Maven Helper

在 IntelliJ IDEA 中安装并使用 Maven Helper 插件可以帮助你更方便地管理 Maven 项目的依赖&#xff0c;比如查看依赖树、排除冲突依赖等。以下是安装和使用 Maven Helper 插件的步骤&#xff1a; 安装 Maven Helper 插件 打开 IntelliJ IDEA 并进入你的项目。 在 IDE 的右下…

【408 数据结构】第1章绪论

文章目录 绪论考纲DS 基本概念1. 基本概念2. 数据结构三要素 算法&#xff08;时/空间复杂度计算&#xff09;1. 算法概念2. 算法效率的度量时间复杂度&#xff1a;空间复杂度&#xff1a; 小结 绪论 考纲 计算时间复杂度和空间复杂度&#xff08;重点难点&#xff09; DS …

简化物业数据管理:使用 Indexify 进行高级数据提取和检索

使用 Indexify 进行文档查询的分步指南。欢迎来到雲闪世界。 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 总结&#xff1a; 传统的数据提取方法通常会错过非结构化内容的更深层次的见解&#xff0c;尤其是在房地产领域。 本文探讨使用 Indexify&…

Mental-LLM——通过在线文本数据利用大型语言模型进行心理健康预测

概述 源码地址&#xff1a;https://github.com/neuhai/Mental-LLM.git 论文地址&#xff1a;https://arxiv.org/abs/2307.14385 在一项关于哪些法律硕士适合精神健康护理的研究中&#xff0c;对以下五种法律硕士进行了比较 羊驼-7b。羊驼-LoRA。FLAN-T5-XXLGPT-3.5GPT-4. 作…