书写顺序
select - from - where - group by - having - order by
执行顺序
from - where - group by - having - select - order by
where 从右到左 过滤掉最大数量记录的条件放在末尾
group by 从左到右 需要过滤的尽量使用where,这样就能group by 更少的数据,避免group by 后再having
having 的开销是非常大的
on where having 都可以加条件
执行顺序 on - where - having,提前过滤掉数据,就可以减少中间运算需要处理的数据,速度比较快
on的过滤按理说是最快的,where比having快
单表查询没有计算字段速度一样,但where有rushmore技术,会快一点
而涉及到计算字段,要注意where是计算前完成,having是计算后完成