SQLite剖析之C/C++接口】的更多相关文章

前言 SQLite3是SQLite一个全新的版本,它虽然是在SQLite2的代码基础之上开发的,但是使用了和之前的版本不兼容的数据库格式和API.SQLite3是为了满足以下的需求而开发的:支持UTF-16编码.用户自定义的文本比较方法.可以对BLOBs字段建立索引.SQLite 3.X版的和SQLite 2.X版的API非常相似,但是有一些重要的改变需要注意.3.X版的API增加到超过185个,所有API接口函数和数据结构的前缀都由"sqlite_"改为了"sqlite3_…
1.通过官方的SQLite架构文档,理清大体的系统层次:Architecture of SQLite 2.阅读SQLite Documentation中Technical/Design Documentation章节(根据所在层次阅读代码,对应章节描述进行理解.) 应用层角度,从API(List Of SQLite Functions)角度切入,掌握API文档中所有参数的使用. 3.下载源码包sqlite-src-*.zip,在其src目录下包含了所有源码文件.注意若要编译SQLite库则下载单…
前言 使用过程根据函数大致分为如下几个过程: sqlite3_open() sqlite3_prepare() sqlite3_step() sqlite3_column() sqlite3_finalize() sqlite3_close() 这几个过程是概念上的说法,而不完全是程序运行的过程,如sqlite3_column()表示的是对查询获得一行里面的数据的列的各个操作统称,实际上在sqlite中并不存在这个函数. 1.sqlite3_open() 该函数用来打开数据库.在操作数据库之前,…
1.异步I/O模式    通常,当SQLite写一个数据库文件时,会等待,直到写操作完成,然后控制返回到调用程序.相比于CPU操作,写文件系统是非常耗时的,这是一个性能瓶颈.异步I/O后端是SQLite的一个扩展模块,允许SQLite使用一个独立的后台线程来执行所有的写请求.虽然这并不会减少整个系统的资源消耗(CPU.磁盘带宽等),但它允许SQLite在正在写数据库时立刻返回到调用者,从用户角度看,无疑提高了前端的响应速度.对异步I/O,写请求在一个独立的后台线程中被处理,这意味着启动数据库写操…
SQLite通过动态内存分配来获取各种对象(例如数据库连接和SQL预处理语句)所需内存.建立数据库文件的内存Cache.保存查询结果. 1.特性    SQLite内核和它的内存分配子系统提供以下特性:    (1)对内存分配失败的健壮处理.如果一个内存分配请求失败(即malloc()或realloc()返回NULL),SQLite将释放未关联的缓存页,然后重新进行分配请求.如果失败,SQLite返回SQLITE_NOMEM给应用程序.    (2)无内存泄漏.应用程序负责销毁已分配的任何对象.…
SQLite是遵守ACID的轻型数据库引擎,它包含在一个相对较小的C库中.它是D.RichardHipp创建的公有领域项目.不像常见的客户端/服务器结构范例,SQLite引擎不是一个与程序通信的独立进程,而是连接到程序中成为它的一个主要部分.所以主要的通信协议是在编程语言内的直接API调用.这在消耗总量.延迟时间和整体简单性上有积极的作用.整个数据库(定义.表.索引和数据本身)都在宿主主机上存储在一个单一的文件中.其简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的. 一.特性    …
先从全局的角度把握SQLite内核各个模块的设计和功能.SQLite采用了层次化.模块化的设计,而这些使得它的可扩展性和可移植性非常强.而且SQLite的架构与通用DBMS的结构差别不是很大,所以它对于理解通用DBMS具有重要意义.SQLite的内核总的来说分为三个部分,虚拟机(Virtual Machine).Back-end(后端)和compiler(编译器). 1.虚拟机(Virtual Machine)VDBE是SQLite的核心,它的上层模块和下层模块本质上都是为它服务的.它的实现位于…
sqlite是一种比较轻型的嵌入式数据库,它与 SQL 之间的不同,为什么需要它,以及它的应用程序数据库处理方式.SQLite是一个软件库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.SQLite是一个增长最快的数据库引擎,这是在普及方面的增长,与它的尺寸大小无关 安装教程见: Sqlite安装 建数据库 :sqlite3  d:\sqlite\  test.db (命令 + 路径 +表名) 查看数据库用  .database 建表:create table test_…
前言 SQLite作为嵌入式数据库,通常针对的应用的数据量相对于DBMS的数据量小.所以它的存储模型设计得非常简单,总的来说,SQLite把一个数据文件分成若干大小相等的页面,然后以B树的形式来组织这些页面.而对于大型的数据库管理系统,比如Oracle,或者DM ,存储模型要复杂得多.就拿Oracle来说吧,它对数据文件不仅从物理上进行分块,而且从逻辑上进行分段,盘区和页的一个层次划分DM也一样.不管怎么说,数据库文件要存储大量的数据,为了更好管理,查询和操作数据文件,DBMS不得不从物理上.逻…
1.API 由两部分组成: 核心API(core API)和扩展API(extension API). 核心API的函数实现基本的数据库操作:连接数据库.处理SQL.遍历结果集.它也包括一些实用函数,比如:字符串转换.操作控制.调试和错误处理. 扩展API通过创建你自定义的SQL函数去扩展SQLite. 1.1.SQLite Version 3的一些新特点 (1)SQLite的API全部重新设计,由第二版的15个函数增加到88个函数.这些函数包括支持UTF-8和UTF-16编码的功能函数.(2)…