SQlite源码分析

Pager的数据库文件页

       SQLite把一个数据库(包括内存数据库)分成一个个固定大小的页面,大小的范围从512-32768,页面默认大小为1024B(1KB),事实上页面的上限由2个B的有符号整数决定。 整个数据库可以看成这些页面的数组,页面数组的下标为页面的编号(page number),page number从1开始,一直到2,147,483,647 (2^31– 1)。实际上,数组上界还受文件系统允许的最大文件大小决定。0号页面视为空页面(NULL page),物理上不存在,1号页面从文件的0偏移处开始,一个页面接着下一个页面。
       数据库一旦创建,SQLite便使用编译时确定的默认页面大小。当然,在创建第一个表之前,可以通过pragma命令改变页面大小。SQLite把该值作为元数据的一部分存储在文件中。