博客
关于我
MySQL语句执行过程
阅读量:425 次
发布时间:2019-03-06

本文共 690 字,大约阅读时间需要 2 分钟。

目录

平常我们看到的只是一条语句执行出来的结果,并不知道中间发生了什么,今天就来探究一下,MySQL语句的执行过程。

1.连接器

每次使用Mysql会先连接到数据库上面,连接器负责跟客户端进行连接

mysql -u root -p

然后根据密码,判断我登陆进去会有什么权限,并分配权限给我

通过 show processlist可以查看客户端连接的状态

2.查询缓存

当连接建立完成之后,MySQL会对所执行的查询语句进行查询,有没有在缓存中,如果有直接返回缓存的查询结果,不需要执行下一步了。

当语句不存在缓存中,通过分析器继续分析。

不建议使用查询缓存,因为表的数据的更改都会使缓存失效,适合用查询缓存的表,比如经常不用更改的数据,还有静态数据。如果硬要走缓存可以显示指定SQL_CACHE

select SQL_CACHE * from Student where ID=1;

3.分析器

分析器会将sql语句识别,关键字识别,每一个单词代表什么,然后会根据这些识别能否满足SQL语法,满足不了会提示你哪部分错误。比如你一个单词输入错误,分析器会将错误直接提示出来。

4.优化器

优化器是用来决定表的索引使用,以及表的连接顺序等等,来达到最快的速度。

5.执行器

当优化完成之后,执行器开始执行SQL语句,当权限不足的时候会提示错误。执行器根据表的引擎获取接口。

对数据一行行进行判断,直到表的最后一行,最后把结果集返回给客户端。SQL语句到这里就执行完成了

在Mysql中有一个慢查询日志,有一个读取行的记录字段rows_examined ,这个就是读取每行时累加的数据。

转载地址:http://kyakz.baihongyu.com/

你可能感兴趣的文章
MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
查看>>
MYSQL一直显示正在启动
查看>>
MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
查看>>
MySQL万字总结!超详细!
查看>>
Mysql下载以及安装(新手入门,超详细)
查看>>
MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
查看>>
MySQL不同字符集及排序规则详解:业务场景下的最佳选
查看>>
Mysql不同官方版本对比
查看>>
MySQL与Informix数据库中的同义表创建:深入解析与比较
查看>>
mysql与mem_细说 MySQL 之 MEM_ROOT
查看>>
MySQL与Oracle的数据迁移注意事项,另附转换工具链接
查看>>
mysql丢失更新问题
查看>>
MySQL两千万数据优化&迁移
查看>>
MySql中 delimiter 详解
查看>>
MYSQL中 find_in_set() 函数用法详解
查看>>
MySQL中auto_increment有什么作用?(IT枫斗者)
查看>>
MySQL中B+Tree索引原理
查看>>
mysql中cast() 和convert()的用法讲解
查看>>
mysql中datetime与timestamp类型有什么区别
查看>>
MySQL中DQL语言的执行顺序
查看>>