从感觉上来说,是先执行WHERE查询符合条件的结果集,再执行ORDER BY,把查询出来的结果集进行排序。此问题设计到RDBMS内部实现及其查询优化的问题,你执行一条SQL语句时,RDBMS的SQL解析器会生成相应的执行树,按照执行树的顺序对底层存储的数据操作,而后返回处理结果。这里先执行哪一个子句、后执行哪一个子句是有SQL解析器决定的,SQL解析器会给出一条它认为最优的执行树。
先WHERE,过滤出数据,形成结果集;ORDER BY是已经有了结果集,再作排序