1、背景简单理解一下mysql的服务器架构。2、mysql服务器架构解释mysql的架构图如下:主要分为三部分:客户端、服务端、存储引擎。接下来我们来解释一下各个部分:客户端用来连接mysql服务器的
1、背景
简单理解一下mysql的服务器架构。
2、mysql服务器架构解释
mysql的架构图如下:

主要分为三部分:客户端、服务端、存储引擎。
接下来我们来解释一下各个部分:
客户端
- 用来连接mysql服务器的命令行、各种语言的客户端。
服务端分为:连接器、分析器、优化器、执行器。
连接器
- mysql -h 127.0.0.1 -p 3306 -u xxx -p这条命令就是与连接器进行连接,连接成功之后就对用户权限和连接进行管理。
分析器
- 分析器先进行词法分析:就是识别出sql语句中的select、update、insert、delete关键字还有操作哪些表哪些字段等。
- 然后进行语法分析:判断这条sql的语法是否正确。
优化器
- 优化器就是一条sql执行可能会有好几种方案,然后选择一种最合适的方案。
- 比如表里有好几个索引,优化器就会决定最先使用哪个索引。
执行器
- 调用存储引擎获取结果之前,先判断建立连接的用户对操作的表有不有权限,没权限就报错,有权限就获取存储引擎返回的结果,将符合条件的结果返回给客户端。
存储引擎
3、总结
简单了解mysql服务器的架构,对一条sql的执行流程有个大概的认识,后续再深入理解各个部分。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
相关文章:
-
-
1、背景之前我们讲过redo日志类型有很多种,但是要想保证服务器崩溃数据能还原,这些日志还是得存储在磁盘上,接下来我们就来讲解一下redo日志的存储过程。2、redo日志存储过程【…
-
-
1、背景执行我们的sql语句是在buffer pool中操作的,因为刷新到磁盘慢的原因可能不会立即同步到磁盘,当系统崩溃时,肯定不能让我们的操作丢失,但是buffer pool中的…
-
1、背景mysql中存储数据是存储引擎干的事,存储引擎存储数据的基本单位是页,我们往数据库插入表中的一条条记录就是存储在页上的,今天我们就来熟悉一下页上面有哪些内容。2、页的组成页…
-
1、背景mysql中数据存储是存储引擎干的事,innodb存储引擎以页为单位存储数据,每个页的大小为16kb,平时我们操作数据库都是以行为单位进行增删改查,行数据是存储在页上的,行…
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论