数据库查询语句执行顺序

大神的总结:
html

http://www.cnblogs.com/knowledgesea/p/4177830.htmlspa

参考:《Microsoft SQL Server 2008技术内幕:T-SQL查询》htm


查询语句的执行顺序:

一、FROM 子句:执行顺序为从后往前、从右到左。数据量较少的表尽可能放在后面。

二、WHERE子句:执行顺序为自下而上、从右到左。将能过滤掉最大数量记录的条件写在WHERE 子句的最右。

三、GROUP BY:执行顺序从左往右分组,最好在GROUP BY前使用WHERE将不须要的记录在GROUP BY以前过滤掉。

四、HAVING 子句:消耗资源。尽可能避免使用,HAVING 会在检索出全部记录以后才对结果集进行过滤,须要排序等操做。
blog

HAVING子句必须跟在GROUP BY 后面,不能单独存在!
排序

五、SELECT子句:少用*号,尽可能取字段名称。ORACLE 在解析的过程当中, 经过查询数据字典将*号依次转换成全部的列名, 消耗时间。

六、ORDER BY子句:执行顺序为从左到右排序,消耗资源。
资源

ORDER BY子句出现的位置必须在SELECT中的最后一个子句。
get

相关文章
相关标签/搜索