SQLite 使用固定页面大小,默认为 4096 字节,但可以设置为 512 到 65536 之间的任何 2 的幂。每页有一些固定开销(叶页 8 字节,内部页 12 字节),还有一些固定开销每个槽(间接向量中的 2 个字节加上不同的数量,具体取决于页面类型以及它是索引还是表),键/记录占用不同的空间量,具体取决于其结构和内容,以及内容是否溢出页。在这方面,SQLite 中 B 树页面的布局与许多其他关系数据库中使用的布局类似,并且达到了类似的占用水平。
SQLite 的与众不同之处在于大量使用变体、可变长度整数 (varint) 和准通用行溢出功能。这引入了如此多的变量,以至于大小/占用估计远不如 MS SQL Server 中的经典 B 树表那样简单、准确和可靠。不幸的是,这当然超出了我的有限能力......
您可以在sqlite.org数据库文件格式文档的B 树页面部分阅读整个故事。
PS:请注意 Shawn 关于sqlite3 分析器程序的评论。我详细地告诉过你为什么很难确定上帝是否存在,肖恩向你指出了一个程序,它会简单地告诉你他的电话号码。;-)