SQLite中R树索引的存储结构介绍

虚表是sqlite的一种高级特性,它的实现基于sqlite module。对于数据库引擎,它和普通表一样,允许进行大多数的sql操作。SQLite的R树索引是基于虚表实现的。在SQLite中,R树索引的内容实质上是保存在了三个数据表中,这三个表名是在创建虚表时自动生成的,名称分别_node,_rowid,_parent为后缀。表的定义如下:

CREATE TABLE%_node(nodeno INTEGER PRIMARY KEY, data BLOB)

CREATE TABLE%_parent(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)

CREATE TABLE%_rowid(rowid INTEGER PRIMARY KEY, nodeno INTEGER)

其中“%”是创建R树时指定的虚表的名称。比如,如果虚表的名称为abc,则对应的三个索引表分别为:abc_node,abc_parent,abc_rowid.

这三个表这几个表的功能分别如下:

虚表:记录要素的id与范围值;

虚表_node表:记录节点的id和节点的值。

虚表_parent表:节点与其关联的节点间的关系

虚表_rowid表:记录虚表中每条记录对应的节点id(nodeno)。

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐