如果查询MySQL满足规则,但还具有其他条件,是否为“常量”?

时间:2019-07-10 07:35:27

标签: mysql query-optimization

MySQL如下定义Constants & Constant Tables here

  
      
  1. 具有零行或仅具有一行的表

  2.   
  3. 受WHERE条件限制的表表达式,包含表主键的所有列或表的任何唯一键的所有列(提供的形式为column = constant的表达式)唯一列也定义为NOT NULL)。

  4.   

示例1

FROM Table0 ... WHERE column1=5 AND column2=7 ...

Table0定义中包含

... PRIMARY KEY (column1,column2)

示例2

FROM Table1 ... WHERE unique_not_null_column=5

Table1定义中包含

... unique_not_null_column INT NOT NULL UNIQUE

MySQL表示它将预先评估一个常量表,并将该值“插入”到查询中(如果有一个,但如果没有,则将其解析为IMPOSSIBLE WHERE)。

我的问题:

如果还有其他条件以及与constantand串联在一起的or的“必需”条件怎么办? MySQL是否也将以下查询视为常量?

从我的直觉来看,Constant对谓词进行or编辑时会受到伤害,而对and对谓词进行编辑不会受到伤害。但据我所知,任何地方都没有官方的记录。

FROM Table0 ... WHERE column1=5 AND column2=7 AND column_not_special='lorem'
FROM Table1 ... WHERE unique_not_null_column=5 OR some_random=3

0 个答案:

没有答案