基于规则的优化
标签: MySQL 是怎样运⾏的
⼤家别忘了MySQL本质上是⼀个软件,设计MySQL的⼤叔并不能要求
使⽤这个软件的⼈个个都是数据库⾼⾼⼿,就像我写这本书的时候并
不能要求各位在学之前就会了⾥边⼉的知识。
吐槽⼀下:都会了的⼈谁还看呢,难道是为了精神上受感化?
也就是说我们⽆法避免某些同学写⼀些执⾏起来⼗分耗费性能的语
句。即使是这样,设计MySQL的⼤叔还是依据⼀些规则,竭尽全⼒的
把这个很糟糕的语句转换成某种可以⽐较⾼效执⾏的形式,这个过程
也可以被称作查询重写(就是⼈家觉得你写的语句不好,⾃⼰再重写
⼀遍)。本章详细唠叨⼀下⼀些⽐较重要的重写规则。
条件化简
我们编写的查询语句的搜索条件本质上是⼀个表达式,这些表达式可
能⽐较繁杂,或者不能⾼效的执⾏,MySQL的查询优化器会为我们简
化这些表达式。为了⽅便⼤家理解,我们后边举例⼦的时候都使⽤诸
如a、b、c之类的简单字⺟代表某个表的列名。
移除不必要的括号
有时候表达式⾥有许多⽆⽤的括号,⽐如这样:
((a = 5 AND b = c) OR ((a > c) AND (c < 5)))
看着就很烦,优化器会把那些⽤不到的括号给⼲掉,就是这样:
文档被以下合辑收录
评论