MYSQL学习笔记之语句是如何执行的(一)

声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。

体会

学习一个新的知识时,自己从前的学习线路是:想第一次就从头学习到尾,遇到每一个小知识点时,想第一次学习的时候,就把它弄懂。结果导致自己对知识宏观上的认识会来的比较慢,相当于后知后觉。
如今学习的时候,对于一个新的知识采用的是,先广度优先搜索,也就是先从宏观上了解一下整个的大概,然后第二遍回头逐渐深入,学习起来便会更加的顺畅。当然,学习MYSQL这个知识点的时候,也是如此。

1.正文

这篇文章将回答两个问题:

1、MySQL 的基础架构怎么组成?
2、这些零件(基础架构组件),分别有什么作用。?

1.1MySQL 的基础架构怎么组成?

在这里插入图片描述
(图片来源极客时间)。也就是说 我们执行一条简单是sql,比如SELECT * FROM T WHERE id = xxx,将会经过这么几个流程

1.2这些零件(基础架构组件),分别有什么作用。?

从大体上看可以分为Server层和引擎层两部分组成。

1.2.1 Server层

连接器:
这就是执行将你客户端与数据库连接的一个作用。(注意:需要定时清除长连接)

查询缓存:
mysql拿到一个请求之后,首先会到缓存当中,查看是否执行过该条语句,如果存在,那么直接返回缓存中的数据。不存在 那么就执行后面的步骤,然后将查询到的结果存储在缓存当中

分析器:
它有两个作用 一个是词法分析,一个是语法分析。首先词法分析:目的就是分清你一个sql中,每个词语代表什么 比如:SELECT代表查询,表名代表一个表… 接下来语法分析:就是判断你这条sql是否符合MYSQL的语法

优化器:
优化器的作用就是帮你进行sql语句的内部优化,比如在有多个索引的时候,该选择哪一个索引

执行器:
MySQL 通过分析器知道了你要做什么,通过优化器知道了该怎么做,于是就进入了执行器阶段,开始执行语句。在执行语句之前需要进行权限判断。

1.2.2 引擎层

存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开始成为了默认存储引擎。
至于InnoDB与MyISAM的区别可以参照博客区别

发布了98 篇原创文章 · 获赞 44 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_43732955/article/details/104244585