格式细节 一个文件分成了多个页。第一页叫做页1,第二页叫做页2,一次类推。页的个数为0表示没有页。页的大小可以从512 到 65536。每一页或者是一个btree页,或者是一个freelist页,或者是一个溢出页。 第一页一定是一个btree页。第一页的前面100个字节包含了一个特殊的首部(文件头),它是这个文件的描述。 文件头的个数如下: ** OFFSET SIZE DESCRIPTION ** 0 16 Header string(首部字符串): "SQLite format 3\000" ** 16 2 Page size in bytes(页的字节数). ** 18 1 File format write version(文件写操作的版本) ** 19 1 File format read version (文件读操作的版本) ** 20 1 Bytes of unused space at the end of each page(每一页结尾未使用的字节) ** 21 1 Max embedded payload fraction(最大的嵌入有效负荷分片) ** 22 1 Min embedded payload fraction(最小的嵌入有效负荷分片) ** 23 1 Min leaf payload fraction(最小的页有效负荷分片) ** 24 4 File change counter (文件变化计数器) ** 28 4 Reserved for future use (保留字节) ** 32 4 First freelist page (第一个freelist页) ** 36 4 Number of freelist pages in the file (本文件中freelist页的个数) ** 40 60 15 4-byte meta values passed to higher layers() ** 所有的整数都是大端的。