sql语句执行顺序及简单优化
SQL的执行顺序
(1)from (表关联,是从后往前、从右到左解析的 ) 所以尽量把数据量大的表放在最左边来进行关联
(2) on 需要从哪个数据表检索数据
(3) join 多表连接时,使用表的别名并把别名前缀于每个Column上。可以减少解析的时间并减少那些由Column 歧义引起的语法错误.
(4) where 过滤表中数据的条件 (解析顺序是自下而上、从右到左 )所以把能筛选出大量数据的条件放在where语句的最下面
(5)group by(开始使用select中的别名,后面的语句中都可以使用) 如何将上面过滤出的数据分组 (执行顺序从左往右分组)
1、 如果应用了group by,那么后面的所有步骤都只能得到group by后的列或者是聚合函数(count、sum、avg等)。原因在于最终的结果集中只为每个组包含一行。这一点请牢记。
2、提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉。即在GROUP BY前使用WHERE来过虑,而尽量避免GROUP BY后再HAVING过滤
(6) avg,sum.... 聚合函数
(7)having 对上面已经分组的数据进行过滤的条件(很耗资源,尽量少用)
避免使用HAVING 子句, HAVING 只会在检索出所有记录之后才对结果集进行过滤. 这个处理需要排序,总计等操作.
(8) select 查看结果集中的哪个列,或列的计算结果 (少用*号,尽量取字段名称)
在解析的过程中, 会将依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 使用列名意味着将减少消耗时间。
sql 语句用大写的;因为 oracle 总是先解析 sql 语句,把小写的字母转换成大写的再执行
(9) distinct
(10) order by 按照什么样的顺序来查看返回的数据 (执行顺序为从左到右排序,很耗资源)
sql语句执行顺序及简单优化相关推荐
- SQL Server 中SQL语句执行顺序
SQL Server 中SQL语句执行顺序 我们需要对SQL语句的执行顺序了若指掌,才能更好的理解SQL. SQL 不同于与其他编程语言的最明显特征是处理代码的顺序. 在大数编程语言中,代码按编码顺序 ...
- 【转】SQL 语句执行顺序
From:http://www.jellythink.com/archives/924 Oracle-SQL语句执行原理和完整过程详解:https://wenku.baidu.com/view/398 ...
- SQL 语句执行顺序
From:http://www.jellythink.com/archives/924 Oracle-SQL语句执行原理和完整过程详解:https://wenku.baidu.com/view/398 ...
- mysql 执行顺序 SQL语句执行顺序分析
最近在做一个数据库的大作业,算是复习了下MySql里面比较复杂的一些语句的用法,如Left Join之类的.在这里就不对具体语法进行记录了,希望能在以后经常用到,而不是隔好长时间用一次.在这里就记录下 ...
- 整理:sql server 中sql语句执行顺序
原文地址为: 整理:sql server 中sql语句执行顺序 SQL Server 查询处理中的各个阶段(SQL执行顺序) SQL 不同于与其他编程语言的最明显特征是处理代码的顺序.在大数编程语言中 ...
- mysql sql语句执行顺序
mysql sql语句执行顺序 引言:作为一个程序猿.要想优化sql,首先要明白sql语句的执行顺序.同时防止该死的面试官问一些数据库专业的问题有必要知道这些 sql语句select语句查询顺序 (7 ...
- mysql oracle 查询语句执行顺序_MySQL sql语句执行顺序
(8) DISTINCT (1) FROM (3) JOIN (2) ON (4) WHERE (5) GROUP BY (6) HAVING ...
- 25、Sql语句执行顺序
sql语句定义和执行顺序 摘自<MySQL技术内幕:SQL编程> sql语句定义的顺序 (1) SELECT (2)DISTINCT<select_list> (3) FROM ...
- php语句执行顺序,sql语句执行顺序是什么
sql语句执行顺序:1.最先执行from tab:2.where语句是对条件加以限定:3.分组语句[group by-- having]:4.聚合函数:5.select语句:6.order by排序语 ...
最新文章
- 10.7抛出异常处理
- 数学基础学习随笔--序言
- SG函数和SG定理(Sprague_Grundy)
- mysql数据库唯一性_在MySQL数据库中添加唯一性约束,范围可能吗?
- django1.9的static文件配置
- 中文字体其实也可以用在网页上的
- 内核同步机制-优化屏障和内存屏障
- debian重启ssh服务_「原创首发」可视化Linux面板,方便快捷的管理服务器和搭建网站...
- MATLAB快速入门(一)
- WEB前端助手FeHelper|前端人员的神器
- 排错万能金钥匙之Linux系统应用
- mysql嵌套查询是从外向内执行的吗_MySQL嵌套查询
- 2021年高处安装、维护、拆除复审考试及高处安装、维护、拆除模拟考试题
- Umap与 t-sne可视化CNN特征
- mysql 关闭防火墙 命令_CentOS7关闭防火墙命令
- 心路历程 致正在为梦想奋斗的自己
- 各种音视频编解码标准
- 中国科学院大学计算机非全日制,中国科学院大学能考非全日制研究生?
- 2021年深圳市专精特新中小企业遴选申报指南
- strtus1 html5,struts1.x的入门级学习教程