![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
sqlite
spche
这个作者很懒,什么都没留下…
展开
-
sqlite中的journal
journal 主要用途是,当事务要修改page时,先把未修改的page存入journal中,如果事务rollback时,就从journal中得到修改前的数据,覆盖已改的,达到事务的一致性。journal是一个不同于数据库文件的另一个文件,它在事务开始时创建,当事务结束时就删除了The format for the journal header is as follows:- 8 bytes: Magic identifying journal format.- 4 bytes: Number of rec原创 2010-07-05 16:27:00 · 6290 阅读 · 0 评论 -
sqlite的page cache
这部分的结构体在sqlite中定义了相似的两组,区别是名字后面加了个数字1,使的阅读起来非常不方便。后面加1的是内部定义;没加1的相当于接口,是给程序使用的。而且结构体中存在相互指向,使用起来也许比较方便,但抽象性不高/*** Every page in the cache is controlled by an instance of the following** structure.*/struct PgHdr { void *pData; /* Content原创 2010-07-22 16:43:00 · 2472 阅读 · 0 评论 -
使用vs2005单步调试sqlite3.6.23
网上大多数的使用vs2005编译sqlite是编译成为dll,我的目的是为了分析sqlite,所以还是编译成一个可执行程序方便单步调试1.创建一个空的Win32 Console Application工程,2.sqlite3.6.23的所有源码均加入工程,除去以下几个mutex_os2.c mutex_unix.c os_os2.c os_unix.c tclsqlite.cshell.c 可去可不去,不去的话,可生成执行SQL的输入控制吧,方便调试;去掉的话,需要自已编写一个测试的C文件,3.选择合适原创 2010-06-10 15:55:00 · 2080 阅读 · 0 评论 -
sqlite中的lock
sqlite只有在多线程的程序中才会启用封锁,单线程的不需要封锁有四种类型 SHARED、RESERVED、PENDING、EXCLUSIVESHARED: Any number of processes may hold a SHARED lock simultaneously.RESERVED: A single process may hold a RESERVED lock on a file at any time. Other processes may hol原创 2010-06-22 17:38:00 · 2368 阅读 · 0 评论