Mysql性能调优------------基础篇(一)
前提
在正式的Mysql调优之前,我们必须具备以下知识:
1、Mysql的执行顺序
2、Mysql执行顺序的各个阶段做了什么操作
1、Mysql的执行顺序
(1) from
(2) join
(3) on
(4) where
(5) group by
(6) 内置函数(sum()...等)
(7) having
(8) select
(9) distinct
(10) order by
2、各个阶段做的操作
1、from、join、on:将硬盘上的表文件加载到内存中,生成一个全新的临时表
2、where:where命令循环遍历当前临时表中的**每一个数据行**,将满足条件的数据行保存到一个全新的临时表
**注:因为where每次操作临时表的每个数据行,所以where语句中无法使用聚合函数作为判断条件**
3、group by:对临时表中数据进行一次**排序处理**,然后把**相同特征的数据行保存到一张新的临时表**中(可能有多个)
4、having:负责将group by生成的临时表中不满足条件的临时表进行删除
5、select:
<1> select操作的临时表,由from或where来提供的,select将指定字段中所有内容读取出来,将读取的内容组成一个全新的临时表;
<2> select操作的临时表,由group by或having命令提供的,此时select将遍历生成的每一个临时表,才操作具体临时表时,select只会读取指定字段中第一个数据行内容
6、distinct:对select生成的临时表进行去重复行操作
7、order by:对select生成的临时表中的数据行进行排序,将排序后内容组成一个全新的临时表
ps:去年出现一些问题导致停更,今年继续努力,一起加油