您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

我认为,根据的包含 是:

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

SQLite查询优化器概述

也许值得一试ANALYZE,看看是否可以改善情况。

根据评论

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

添加了以下内容

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

我不确定是否可以使用BETWEEN(例如WHERE column BETWEEN expr1 AND expr2)。

SQLServer 2022/1/1 18:52:37 有347人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶