
Inside SQLite
文章平均质量分 89
silenci
宅若久时天然呆,呆到长时自然萌
展开
-
Inside SQLite Chapter 1.概览
概览过去的几十年中涌现了许多数据库管理系统(DBMSs),例如DB-2,Informix,Ingres,MySQL,Oracle,SQL Server,Sybase等。SQLite近几年才加入到DBMS的大家庭中,并且在商业应用上取得了成功。2000年5月9日,SQLite首次发布。该数据库是一个具有以下特性的关系型数据库:无需配置(Zero configuration) 在使用SQ翻译 2016-09-07 15:37:42 · 636 阅读 · 0 评论 -
Inside SQLite Section 1.1 应用实例
1.1应用实例1.1.1一个简单的SQLite应用#include #include "sqlite3.h"int main(void){ sqlite3* db = 0; sqlite3_stmt* stmt = 0; int retcode; retcode = sqlite3_open("MyDB", &db); /* Open翻译 2016-09-14 08:55:11 · 810 阅读 · 0 评论 -
SQLite数据库文件格式逐字节详解
sqlite用B+树的形式组织数据库中的数据。B+树有内部节点和叶子节点两种节点,对应的,数据库文件也有内部节点页和叶子节点页。 数据库中存储着两种数据,一种是表中的数据的集合(这些数据构成了一个表),一种是所有表的根节点集合(所有的表的根节点构成了master_catalog)。这两种数据都是通过B+树组织起来的,数据库文件中4KB大小的一个部分构成B+树的一页。执行命令:”create tab原创 2016-11-06 21:56:06 · 8529 阅读 · 0 评论 -
sqlite锁机制概述
sqlite的锁的粒度比较粗,是数据库级别的,也就是说即使只是对某个页进行读写操作,sqlite也会封锁整个数据库。这种策略降低了读-写事务和写-写事务间的并发程度,但是大大简化了程序设计,减小了整个程序的大小。所以,sqlite的适用场景为:较少次写入数据,大量、多次读出数据。这也是sqlite作为一款嵌入式数据库的设计初衷。读、写事务获取锁的过程sqlite读事务获取锁的过程:UNLOCKED-原创 2017-04-04 11:08:37 · 3410 阅读 · 0 评论 -
SQLite 变长度整型(varint)编码解码方法
SQLite为了节省存储空间,可以对64-bits的整型变量进行压缩。压缩后的最后一个byte的第一个bit是0,其他byte的第一个bit都是1,如下:对于十进制数 182, 它的二进制是 10110110, 有8个bit,但是第一个bit是1,所以对其分割:分割成两个bytes, 填充这两个bytes,使得他们符合上面提到的规则(加粗部分):这样十进制整数 182 就被原创 2016-10-23 16:00:43 · 3227 阅读 · 2 评论