Sqlite中B树的程度是什么?

问题描述 投票:1回答:1

每个节点在Sqlite中使用的B树中可以拥有的最大节点数是多少?这些数字类似于其他关系数据库吗?

database sqlite b-tree
1个回答
2
投票

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

使SQLite与众不同的地方是大量使用了变体,可变长度整数(varint)和准通用行溢出功能。这引入了许多变量,以至于大小/占用率估算值不像MS SQL Server中的经典B树表那样简单,准确和可靠。不幸的是,这肯定超出了我的能力范围...

您可以在B-tree PagesDatabase file format文档的sqlite.org部分中阅读整个故事。

P.S .:请注意Shawn关于sqlite3 analyser程序的评论。我详细地告诉了您为什么很难确定上帝是否存在,而肖恩指出了一个简单的程序,该程序可以为您提供流血的电话号码。 ;-)

© www.soinside.com 2019 - 2024. All rights reserved.