通过rowid perf进行sqlite查找

时间:2015-03-04 07:25:55

标签: sqlite database-performance

我红了"查询计划"非常感兴趣地链接https://www.sqlite.org/queryplanner.html

我仍然是sqlite3的初学者,我想问一个关于"由rowid"查找的表现的问题。 TECHNIC。

该文件说在rowid上进行了bsearch,在我的例子中,我使用PK作为rowid。

我使用具有稀疏PK值的表,一旦构造了这些表,它们就再也不会改变,不再插入/删除。我不知道是否有任何API可以关闭'一张桌子,即使其不再可修改。

然后我需要在一些cols的表上构建一些索引。该文档说,当在索引中搜索时我们正在对INDEX进行主要搜索,然后我们得到一个rowid,然后我们对ROWID索引进行二次搜索以找到该行。

因为tabke已关闭'在构建索引时,优化器可以不存储rowid,而是存储row_index而不存储辅助bsearch。

=======================================
沿着这条线,如果不使用PK,让rowid在我的表构造期间逐渐增长1,从而关闭并在其上创建INDEX,在INDEX bsearch匹配上的rowid查找是否用作表中的索引避免二次bsearch,如果是这样的话,我可以这样组织我的表。

Thanx提前提出任何建议 干杯, 披

1 个答案:

答案 0 :(得分:0)

没有row_index这样的东西。

要避免表查找,请将查询读取的所有列放入索引,以便拥有covering index。 或者,使用WITHOUT ROWID表。

相关问题