mysql 语句优化优化
前言我们都会写很多语句,那么如何让语句看起来更加优美呢?
正文
[*]移除不必要的括号
((a = 5 AND b = c) OR ((a > c) AND (c < 5)))
=
(a = 5 and b = c) OR (a > c AND c < 5)
[*]常量传递
a = 5 AND b > a
可以换成a = 5 AND b > 5
但是or 不行。
比如说:
a = 5 or b > a
!=
a = 5 or b > 5这里面不行,因为or 是两者之间一个条件满足就可以,b>a != b>5,因为前置条件a = 5不一定为真
[*]等值传递
a = b and b = c and c = 5
=
a=5 and b =5 and c = 5
[*]移除没用的条件
(a < 1 and b = b) OR (a = 6 OR 5 != 5)
= a < 1 OR a = 6
比如b = b 和 5 != 5 一定为true
[*]表达式计算
a = 5 + 1
a = 6
这个可能优化器自动帮忙优化啥的。
但是下面这种事不会帮忙优化的:
ABS(a) > 5
-a 5 可以这样写a>5 or a
页:
[1]