首页 > 数据库技术 > 详细

SQL执行顺序

时间:2018-01-15 23:13:56      阅读:208      评论:0      收藏:0      [点我收藏+]

在项目开发的时候 特别是遇到数据库表中数据比较多的时候 SQL语句的执行效率优先级是非常高的,最近本人写了一条SQL 800万条数据中执行了10秒,最后定位出来是在使用 where lower(t.commit) = lower(#{userName})的时候执行效率特别慢 ;再次 后面会去专门分析 oracle中 自带函数的使用以及原理,这里就不做分析了,先来理解一下SQL的执行顺序 之前写SQL的时候拉住代码就乱写,也不管执行效率,自存经过了这件事情之后 才下定决心好好研究SQL性能方面的问题。

SQL select 执行顺序:

  1.from 子句用来组装不同数据源的数据

  2.where字句基于 指定的条件对记录进行筛选 (自右向左 所以 and条件一次能过滤多条记录的放在右侧)

  3.group by字句将数据划分成多个组

  4.使用聚合函数进行计算

  5.使用having字句筛选分组

  6.计算所有的表达式

  7.select 查询字段(尽量不要用select *)

  8.使用order by 对结果集进行排序(在from表有别名的时候 可能有的时候由于SQL执行的顺序问题 用到别名的时候可能会报错 后面会补充数据库别名的使用)

SQL语言不同于其他编程语言的最明显特征就是处理代码的顺序。在大多数据库语言中,代码按编码顺序被处理。但在SQL中,第一个被处理的字句是from,而不是第一个出现的select

 

 

 

 

注意:在使用别名的时候 可能有的条件会出错 这里和SQL执行的顺序有关系 后续会举例进行验证

 

SQL执行顺序

原文:https://www.cnblogs.com/loveyou1314/p/8290256.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!