是否可以通过ID以固定的时间sqlite3
操作访问jump
表中的行,而不是我认为的O(n log n)
索引搜索?
给出一张表格,其中每一行都包含一个“对象”,并且其id
是ID的连续列表之一,从理论上讲,有可能在恒定时间内跳转到具有相应id
的行。这相当于将行pointers
存储在表中。
sqlite
是否在此位置以及通过哪种方式进行?
编辑:数据库将不会加载到内存中,并且我不确定磁盘上是否可能有指针。
否,当前的实现不可能。
[C0页说明:
数据库中的每个表和索引都使用单独的B树。
[其他各页都提到了B树索引的使用。
Architecture of SQLite页面也没有提到直接的“指针”索引实现。而是仅提及基于SQL查询的元素选择适当的索引,但是所有此类索引仍然是需要非恒定查找时间的标准b树。
老实说,我认为这个主意是一个好表,因为它被确定为只能由连续的整数主键(很少插入和很少或没有删除)访问,然后可以使用直接文件指针根据您的描述访问数据。