我认为,根据的包含 是:
查询中的WHERE子句分为“条款”,其中每个条款都由AND运算符分隔。如果WHERE子句由由OR运算符分隔的约束组成,则整个子句将被视为应用OR子句优化的单个“项”。
SQLite查询优化器概述
也许值得一试ANALYZE
,看看是否可以改善情况。
根据评论:
我认为前面添加的段落可以阐明为什么ABS(xy)
expression …
添加了以下内容。
要通过索引使用,术语必须具有以下形式之一:
列=表达式
列IS表达式
列>表达式
列> =表达式
列<表达式
列<=表达式
表达式=列
表达式>列
表达式> =列
表达式<列
表达式<=列
列IN(表达式列表)
列IN(子查询)
列IS NULL
我不确定是否可以使用BETWEEN
(例如WHERE
)。
column BETWEEN expr1 AND expr2