SQLite:优化表扫描

标签 sqlite optimization indexing full-table-scan

在我的表中,有一些列没有索引,在这些列中搜索值可能需要很长时间,因为 SQLite 会进行全表扫描。

在我的具体情况下,我正在查找的行(值是唯一的)几乎总是在最近插入的行中。

我怀疑 SQLite 在进行扫描时从最旧的(第一)行开始,有什么方法可以指示 SQLite 以相反的顺序进行表扫描?

更新:我在变更日志中发现了这一点:

如果这样做可以满足 ORDER BY ... DESC 子句,优化器现在将反向扫描表。

所以也许这意味着我可以添加一个 ORDER BY 子句来加快速度。

最佳答案

解决方案是:

ORDER BY rowid DESC LIMIT 1

它使查找速度快如闪电!

关于SQLite:优化表扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7547022/

相关文章:

javascript - JSON - 根据 json 的索引显示数据

sqlite - 使用 sqlite3 迁移时出现问题,收到错误消息-> 未定义的方法 `prerequisites' 为 nil :NilClass

c# - DataAdapter.Update() 性能

C++字符串面试题

database - 为什么 sybase 索引大小比数据本身大得多

python - For 循环子集化的 pandas 数据帧

python - 使用 django ORM 获取只有最新 child 的 parent 的优化方法

django - ResponseError 'zunionstore' 命令的参数数量错误

javascript - 检测浏览器选项卡是否具有焦点

mysql查询优化