每个节点在Sqlite中使用的B树中可以拥有的最大节点数是多少?这些数字是否与其他关系数据库相似?
SQLite使用固定的页面大小,默认大小为4096字节,但可以将其设置为512到65536之间的任意2的幂。每页有一些固定的开销(叶子页面8字节,内部页面12字节),一些固定开销每个插槽(间接向量中的2个字节,并根据页面类型以及它是索引还是表而增加数量),键/记录根据其结构和内容以及是否已将内容溢出而占用不同的空间量页面。在这方面,SQLite中B树页面的布局与许多其他关系数据库中使用的布局相似,并且可以达到类似的占用率。
SQLite的与众不同之处在于大量使用了变体,可变长度整数(varint)和准通用行溢出功能。这就引入了太多的变量,以至于大小/占用率的估算值远不如MS SQL Server中的经典B树表那样简单,准确和可靠。不幸的是,这肯定超出了我的能力范围。
您可以在sqlite.org的数据库文件格式文档的B树页面部分中阅读整个故事。
PS:请注意Shawn关于sqlite3分析仪程序的评论。我详细地告诉了您为什么很难确定上帝是否存在,而肖恩指出了一个简单的程序,该程序可以为您提供他流血的电话号码。;-)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句