mysql多条件查询时各个条件的优先级问题

mysql多条件查询时各个条件的优先级问题,第1张

=的优先级要高于LIKE的,模糊匹配的优先级最低了。

所以先去找date = '2010-11-1'的纪录的。因为SQL默认精确查询(=)会减少下次扫描纪录。

这个不关你索引的事情的,SQL运算符之间=优先级最高的。做过SQL性能分析的都知道的。 (DB2里面是这样的)

Sorry! MYSQL有点不一样。

下面是从mysql reference里面copy过来的。如果这样来说mysql里面你那个就是从左到右开始执行的。

Operator precedences are shown in the following list, from highest precedence to the lowest. Operators that are shown together on a line have the same precedence.

INTERVAL

BINARY, COLLATE

!

- (unary minus), ~ (unary bit inversion)

^

*, /, DIV, %, MOD

-, +

<<, >>

&

|

=, <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN

BETWEEN, CASE, WHEN, THEN, ELSE

NOT

&&, AND

XOR

||, OR

:=

不同数据库差别还真的不小阿。。以后回答要仔细了。

目前没有可行方法可以在不重启的情况下更改MySQL调度优先级,MySQL的调度优先级属于运行时的功能调度,优先级的修改一般也只有通过修改语句的LOW-PRIORITY和HIGHT-PRIORITY级别去实现。


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

原文地址: https://outofmemory.cn/zaji/7378581.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存