Sqlite中B-Tree的度数是多少?

What is the degree of B-Tree in Sqlite?

Sqlite中使用的B-Tree中每个节点最多可以有多少个节点?这些数字与其他关系数据库相似吗?

SQLite 使用固定的页面大小,默认为 4096 字节,但可以设置为 512 和 65536 之间的任意 2 的幂。每页有一些固定的开销(叶子页面 8 字节,内部页面 12 个字节),每个槽的一些固定开销(间接向量中的 2 个字节加上根据页面类型以及它是索引还是 table 的不同数量)和 keys/records 占用不同数量的space 取决于它们的结构和内容,以及内容是否溢出到溢出页面。在这方面,SQLite 中 B 树页面的布局类似于许多其他关系数据库中使用的布局,并且它达到了相似的占用水平。

SQLite 的不同之处在于大量使用变体、可变长度整数 (varint) 和准通用的行溢出功能。这引入了如此多的变量,以至于 size/occupancy 估计远不及 MS SQL 服务器中的经典 B 树 table 那样直接、准确和可靠。这当然超出了我的能力范围,不幸的是...

您可以在 B-tree Pages of the Database file format documentation at sqlite.org 部分阅读全文。

P.S.: 请注意 Shawn 关于 sqlite3 analyser 程序的评论。我详细地告诉过你为什么很难确定上帝是否存在,Shawn 给你指出了一个程序,它简单地给你他的流血号 phone。 ;-)