from:全量数据,排序
where:数据过滤,生成新的虚表。我的主观上理解,where中的条件,若是涉及到join中的表,则会移动到相应的on条件中,减小后续生成的虚表大小。select
join:根据on中的条件,生成虚表(笛卡尔积)数据
group by:数据分组,生成新的虚表移动
having:过滤group by以后的数据,生成新的虚表di
select:计算各个列的值,生成新的虚表vi
distinct:去除重复,可能为列,可能为行join
order by:对结果进行排序,生成新的虚表,结果表生成