当一条查询语句中包含所有的子句,执行顺序依下列子句次序:
- FROM 子句:执行顺序为从后往前、从右到左。数据量较少的表尽量放在后面。
- WHERE子句:执行顺序为自下而上、从右到左。将能过滤掉最大数量记录的条件写在WHERE 子句的最右。
- GROUP BY:执行顺序从左往右分组,最好在GROUP BY前使用WHERE将不需要的记录在GROUP BY之前过滤掉。
- HAVING 子句:消耗资源。尽量避免使用,HAVING 会在检索出所有记录之后才对结果集进行过滤,需要排序等操作。
- SELECT子句:少用*号,尽量取字段名称。ORACLE 在解析的过程中, 通过查询数据字典将*号依次转换成所有的列名, 消耗时间。
- ORDER BY子句:执行顺序为从左到右排序,消耗资源。
本文详细介绍了SQL查询语句的执行顺序及其优化策略,包括合理安排FROM、WHERE、GROUP BY、HAVING、SELECT和ORDER BY子句的使用,以及避免使用星号(*)和过度的资源消耗操作,以提高查询效率。
664

被折叠的 条评论
为什么被折叠?



