多语言展示
当前在线:1945今日阅读:19今日分享:20

如何优化SQL语句

做数据库开发或者平时需要接触到数据库的朋友们肯定对sql语句再了解不过了,但是作为刚接触sql语句不久的朋友,如何尽量写出执行效率较高的sql语句来减小数据库的压力呢,这里简单从基础知识入手说下sql语句的执行原理,以便优化可提高sql语句的执行效率。
工具/原料

sql语法知识

方法/步骤
1

sql语句作为结构化查询语言,从语法构成和逻辑上相对简单明了,简单举例基本语法样式:select *------[column]from *-------[table]where *-------[检索条件]group by *----[将数据按组划分];insert,update,delete同理类似;当然复杂点的语句嵌套,子查询,表关联等等,但是首先我们要了解sql的执行顺序,才可以从原理上来优化语句。

2

标准的SQL语句的执行顺序:1、首先执行from子句,如果from后有多个table,先组装不同的数据源到临时表T1

3

2、根据where后的条件对临时表T1进行筛选过滤,生成临时表T2

4

3、按照group by *对临时表T2的数据进行分组,分组后生成临时表T3。【如果没有用到聚合函数,当然也可以不分组】

5

4、如果有having子句,接下来按照子句条件过滤临时表T3的数据,再生成临时表T4

6

5、执行select,按照select所选择的列(column)对临时表T4进行过滤,先执行聚合函数,然后执行distinct去重复行,过滤后生成临时表T5。【如果select后用到聚合函数,则先进行计算。聚合函数也就是sum,count,avg,min,max等函数。】

7

6、order by *,按照order by 条件指定列对临时表T5的数据进行升序或者降序(ASC为升序,DESC为降序,默认为升序)排序后生成临时表T6

8

7、TOP,按照top的条件从临时表T6中拉出对应数据,生成临时表T7,并把数据呈现给用户。【TOP命令不是所有数据库都支持的】

注意事项

到这里sql语句的整体执行流程就结束了,熟悉了执行顺序之后可以根据实际情况对sql语句进行优化来提高执行效率。

推荐信息