SQLITE3:恒定时间行寻址

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

是否可以通过ID以固定的时间sqlite3操作访问jump表中的行,而不是我认为的O(n log n)索引搜索?

给出一张表格,其中每一行都包含一个“对象”,并且其id是ID的连续列表之一,从理论上讲,有可能在恒定时间内跳转到具有相应id的行。这相当于将行pointers存储在表中。

sqlite是否在此位置以及通过哪种方式进行?

编辑:数据库将不会加载到内存中,并且我不确定磁盘上是否可能有指针。

sqlite pointers indexing graph-databases
1个回答
1
投票

否,当前的实现不可能。

[C0页说明:

数据库中的每个表和索引都使用单独的B树。

[其他各页都提到了B树索引的使用。

Architecture of SQLite页面也没有提到直接的“指针”索引实现。而是仅提及基于SQL查询的元素选择适当的索引,但是所有此类索引仍然是需要非恒定查找时间的标准b树。


老实说,我认为这个主意是一个好表,因为它被确定为只能由连续的整数主键(很少插入和很少或没有删除)访问,然后可以使用直接文件指针根据您的描述访问数据。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.