1、优化 select 语句
1.1、where 优化
-
恒定折叠:
(a<b AND b=c) AND a=5 -> b>5 AND b=c AND a=5
-
删除不必要的括号:
((a AND b) AND c OR (((a AND b) AND (c AND d)))) -> (a AND b AND c) OR (a AND b AND c AND d)
-
恒定条件消除:
(b>=5 AND b=5) OR (b=6 AND 5=5) OR (b=7 AND 5=6) -> b=5 OR b=6
- 通过尝试所有可能的方法,找到用于联接表的最佳联接组合。如果
ORDER BY
andGROUP BY
子句中的所有列 都来自同一表,则在连接时优先使用该表。 - 如果有一个
ORDER BY
子句和另一个GROUP BY
子句,或者如果ORDER BY
或GROUP BY
包含连接队列中第一个表以外的表中的列,则会创建一个临时表。
- 通过尝试所有可能的方法,找到用于联接表的最佳联接组合。如果