SQL INDEX不用于WHERe ABS(xy)<k条件,但用于y-k <x <y + k条件

SQL INDEX不用于WHERe ABS(xy)<k条件,但用于y-k <x <y + k条件,第1张

SQL INDEX不用于WHERe ABS(xy)<k条件,但用于y-k <x <y + k条件

我认为,根据的包含

AND
是:

查询中的WHERe子句分为“条款”,其中每个条款都由AND运算符分隔。如果WHERe子句由由OR运算符分隔的约束组成,则整个子句将被视为应用OR子句优化的单个“项”。

SQLite查询优化器概述

也许值得一试

ANALYZE
,看看是否可以改善情况。

根据评论:

我认为前面添加的段落可以阐明为什么ABS(xy)<k不使用索引,为什么x expression …

添加了以下内容。

要通过索引使用,术语必须具有以下形式之一:
列=表达式
列IS表达式
列>表达式
列> =表达式
列<表达式
列<=表达式
表达式=列
表达式>列
表达式> =列
表达式<列
表达式<=列
列IN(表达式列表)
列IN(子查询)
列IS NULL


我不确定是否可以使用

BETWEEN
(例如
WHERecolumn BETWEEN expr1 AND expr2
)。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5011194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存