mysql查询语句处理

       两表做链接查询,  

       查理处理顺序各个阶段:

       1) From: 对From子句中的坐标<left_table>和右表<right_table>执行笛卡尔积,产生虚拟表T1;

       2)On : 对虚拟表T1应用 On筛选,只有那些符合<join_condition>的行才被插入虚拟表T2中;

       3)Join:如果指定了OUTER JOIN (如left outer join,right outer join ,)那么表流标为匹配的行作为外部行添加到T2中,产生T3;

       4)where : 对虚拟表T3应用where过滤条件,只有符合<where_condition>的行才被插入到T4中;

        5)group by: 根据group by 子句中的列,对T4中的记录进行分组操作,产生T5

       6)having: 对T5应用having过滤,只有符合<having_condition>的记录才被插入到虚拟表T7中;

       7)select,

       8)distinct ,去掉重复数据(建立内存临时表,表过大,产生磁盘IO,并对去重列叫unqie key)

       9)order by

       10)limit

好记性不如烂笔头,内存虽快,但不持久
原文地址:https://www.cnblogs.com/onlysun/p/4506057.html