2019-06-18 20:39
⁄ 工业·编程
⁄ 共 10936字
1、异步I/O模式
通常,当SQLite写一个数据库文件时,会等待,直到写操作完成,然后控制返回到调用程序。相比于CPU操作,写文件系统是非常耗时的,这是一个性能瓶颈。异步I/O后端是SQLite的一个扩展模块,允许SQLite使用一个独立的后台线程来执行所有的写请求。虽然这并不会减少整个系统的资源消耗(CPU、磁盘带宽等),但它允许SQLite在正在写数据库时立刻返回到调用者,从用户角度看,无疑提高了前端的响应速度。对异步I/O,写...
SQLite3阅读全文
2019-06-17 20:36
⁄ 工业·编程
⁄ 共 11906字
SQLite通过动态内存分配来获取各种对象(例如数据库连接和SQL预处理语句)所需内存、建立数据库文件的内存Cache、保存查询结果。
1、特性
SQLite内核和它的内存分配子系统提供以下特性:
(1)对内存分配失败的健壮处理。如果一个内存分配请求失败(即malloc()或realloc()返回NULL),SQLite将释放未关联的缓存页,然后重新进行分配请求。如果失败,SQLite返回SQLITE_NOMEM给应用程序。
(...
SQLite3阅读全文
2019-06-16 21:31
⁄ 工业·编程
⁄ 共 6786字
在SQLite中,锁和并发控制机制都是由pager.c模块负责处理的,用于实现ACID(Atomic、Consistent、Isolated和Durable)特性。在含有数据修改的事务中,该模块将确保所有的数据修改全部提交,或者全部回滚。与此同时,该模块还提供了一些磁盘文件的内存Cache功能。
事实上,pager模块并不关心数据库存储的细节,如B-Tree、编码方式、索引等。它只是将其视为由统一大小(通常为1024字节)的数据块构成的单一文件,其中每个块被称为一...
SQLite3阅读全文
2019-06-15 20:27
⁄ 工业·编程
⁄ 共 7615字
一、7种临时文件
SQLite中,一个数据库由单个磁盘文件构成,简化了SQLite的使用,因为移动或备份数据库只要拷贝单个文件即可。这也使得SQLite适合用作应用程序文件格式。但是,当在单个文件中存储一个数据库时,SQLite会在处理数据库的过程中使用许多临时文件。
SQLite目前使用7种不同类型的临时文件:
* 回滚日志(Rollback journals)
* 主日志...
SQLite3阅读全文
2019-06-14 19:22
⁄ 工业·编程
⁄ 共 11831字
许多SQL数据库引擎(除SQLite之外的各种SQL数据库引擎)使用静态、严格的数据类型。对于静态类型,一个值的数据类型由它的容器,即存储这个值的列来决定。SQLite则使用更加通用的动态类型系统。在SQLite中,一个值的数据类型被关联到这个值本身,而不是它的容器。SQLite的动态类型系统向后兼容一般静态类型系统的数据库引擎。在某种意义上,工作在静态类型数据库上的SQL声明也同样能工作在SQLite上。但是SQLite动态类型还允许做一...
SQLite3阅读全文
2019-06-13 18:12
⁄ 工业·编程
⁄ 共 19741字
SQLite3是SQLite一个全新的版本,它虽然是在SQLite2的代码基础之上开发的,但是使用了和之前的版本不兼容的数据库格式和API。SQLite3是为了满足以下的需求而开发的:支持UTF-16编码、用户自定义的文本比较方法、可以对BLOBs字段建立索引。SQLite 3.X版的和SQLite 2.X版的API非常相似,但是有一些重要的改变需要注意。3.X版的API增加到超过185个,所有API接口函数和数据结构的前缀都由"sqlite_"改...
SQLite3阅读全文
2019-06-12 17:10
⁄ 工业·编程
⁄ 共 10303字
SQLite是遵守ACID的轻型数据库引擎,它包含在一个相对较小的C库中。它是D.RichardHipp创建的公有领域项目。不像常见的客户端/服务器结构范例,SQLite引擎不是一个与程序通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。其简单的设计...
SQLite3阅读全文
2019-06-11 16:01
⁄ 工业·编程
⁄ 共 10904字
先从全局的角度把握SQLite内核各个模块的设计和功能。SQLite采用了层次化、模块化的设计,而这些使得它的可扩展性和可移植性非常强。而且SQLite的架构与通用DBMS的结构差别不是很大,所以它对于理解通用DBMS具有重要意义。SQLite的内核总的来说分为三个部分,虚拟机(Virtual Machine)、Back-end(后端)和compiler(编译器)。
1、虚拟机(Virtual Machine)
VDBE是SQLite的核心,它的上层模块和下层模块本质上都是为它服务的。它的...
SQLite3阅读全文
2019-06-10 15:25
⁄ 工业·编程
⁄ 共 6032字
1.通过官方的SQLite架构文档,理清大体的系统层次:Architecture of SQLite
2.阅读SQLite Documentation中Technical/Design Documentation章节(根据所在层次阅读代码,对应章节描述进行理解。)
应用层角度,从API(List Of SQLite Functions)角度切入,掌握API文档中所有参数的使用。
3.下载源码包sqlite-src-*.zip,在其src目录下包含了所有源码文件。注意若要编译SQLite库则下载单一文件版本sqlite-amalgamation-*.zip。
架...
SQLite3, 源码阅读全文
2016-01-07 11:29
⁄ 工业·编程
⁄ 共 931字
qt支持轻量级数据库SQLite,接下来测试这个数据库的基本操作
环境:Ubuntu10.04 + Qt4.7.0
要支持数据库编程,首先在工程文件中增加:QT += sql
头文件:#include <QtSql>
下面新建一个数据库test,然后新建一个表test_table,在表中新建两个字段:id,name。然后查询表,并显示。
代码:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
//db.setHostName("fedo...
SQLite3, 数据库阅读全文