SQL语句执行逻辑
MysqlSql语句执行逻辑
当你向Mysql发送一条SQL语句的时候是否想过这条SQL语句是怎么运行的呢?相同的SQL其实有很多种方式可以实现,但是我们的Mysql是如何找出最优的解决方案的呢?下面我们来看看sql语句是怎么运行的
以下是Mysql语句的执行逻辑
1.语法检查
2.语义检查(DDL,DCL,DML,DTL...)
3.权限检查
4.解析器:解析预处理(沙盘):执行计划
A方案(全表),B方案(索引)
5.优化器:帮我们选择他认为最优的方案(基于代价cost)
6.执行器:按照优化器的选择,执行SQL语句
7.查询缓存(query_cache默认不开启),可以redis替代。
8.日志记录(binlog二进制日志,glog,需要认为开启)
其中7-8点是Mysql调优的重点