学编程 ❀(๑╯◡╰๑)❀ 就上soxunxi.cn!这里有CMS,CSS,NET,PHP,Linux,HTML,JAVA,MySQL,Python等教程.
当前位置: MySQL > 浅谈MySQL的团体架构【MySQL教程】,mysql,整题架构

媒介

又是新的一周,列位周一好。

由于换事变,找屋子这一系列事变都推在了一同,所以近来停更了一个多月。如今一切的事变都已尘埃落定,我也可以安安静静的码字啦。

好了,也不多说,最先新的征程啦。近来一向在看《MySQL手艺内情——InnoDB存储引擎》这本书,也恰好记录下吧。

团体架构图

我们先看一下MySQL的架构图,对其先有一个团体的相识。MySQL重要分为四层架构,分别是网络衔接层,效劳层,存储引擎层,物理层。我们寻常写的SQL语句,以及对SQL语句的优化都在效劳层,他实在就是遵照肯定的准绳使得SQL语句可以按我们的预期效果实行。

各部分引见

网络衔接层

重要担任衔接治理,受权认证,安全等。每一个客户端衔接都对应着效劳器上的一个线程。效劳器上保护一个线程池,防止为每一个衔接竖立和烧毁线程。当客户端衔接到MySQL效劳器时,效劳器对其举行认证。可以经由历程用户名与暗码认证,也可以经由历程SSL证书举行认证。登录认证后,效劳器还会考证客户端是不是有实行某个查询的操纵权限。这一层并非MySQL所特有的手艺。

效劳层

该层是MySQL的中心,包含查询缓存,剖析器,剖析树,预处理器,查询优化器。

  • 查询缓存

在正式查询之前,效劳器会搜检查询缓存,假如能找到对应的查询,则没必要举行查询剖析,优化,实行等历程,直接返回缓存中的效果集。

  • 剖析器和预处理器

MySQL的剖析器会依据查询语句,构造出一个剖析树,重要用于依据语法划定规矩来考证语句是不是准确,比方SQL的关键字是不是准确,关键字的递次是不是准确。

而预处理器重假如进一步校验,比方表名,字段名是不是准确等。

  • 查询优化器

查询优化器将剖析树转化为查询设计,平常情况下,一条查询可以有很多种实行体式格局,终究返回雷同的效果,优化器就是找到这个中最优的实行设计

  • 实行设计

在完成剖析和优化阶段后,MySQL依据响应的实行设计去挪用存储引擎层供应的响应接口来猎取效果。

存储引擎层

担任MySQL数据的存储和提取,是经由历程供应一系列的接口来屏障差异引擎之间的差异。

注重:存储引擎是针对表的,而不是针对库。也就是说同一个库里面的差异表可以具有差异的存储引擎。

罕见的存储引擎有两种,MyISAM和InnoDB,下面我们来看下他们的区分。

起首,我们先竖立一个存储引擎为MyISAM的test1表。

create table test1( a INTEGER, b varchar(10) )ENGINE=MyISAM;

我们可以去MySQL的相干目次看一下他现实存储的内容,发明他对应着三个文件。

其次,我们再竖立一个存储引擎为InnoDB的test2表。

create table test2( a INTEGER, b varchar(10) )ENGINE=INNODB;

我们再去看一下他现实存储的内容,发明他对应这一个文件。

那末题目就来了,他的数据文件和索引文件存放在那里啦。这边先留个题目,下下篇"文件"再说。

物理层

将数据存放在硬盘上。

团体流程

我们发送一条SQL语句,其在MySQL中的团体流程究竟是什么样的?

  • 用户先经由历程Navicat等客户端与效劳端竖立衔接,这边须要用户名和暗码举行认证,也可以用SSL证书举行认证。

  • 登录胜利后,MySQL会依据响应权限来推断该角色是不是具有一些表的权限等。

  • 假如具有相干权限,当用户发送一条查询select语句时,MySQL先查询缓存,假如已经有这条语句的缓存,则直接返回,假如没有则实行下面的流程。假如是更新update,新增insert,删除delete则不查询缓存,直接实行下面的流程。

  • MySQL会将SQL语句剖析为树,然后对其举行校验,比方关键字是不是准确,关键字递次是不是准确,表名是不是准确,字段是不是准确等。假如认证没有胜利,则直接返回毛病。假如认证胜利了,则直接下面流程。

  • MySQL对剖析树举行查询优化,由于多个SQL能够表达的意义一样,然则斲丧的时候能够差异很大。所以MySQL对针对表的存储引擎找到最优的语句实行,也就是生成响应的实行设计。

  • 运用上面生成的实行设计,来挪用存储引擎层的接口。也就是我们日常平凡运用的explain,其可以用来检察是不是走索引,斲丧的时候等信息。

  • 差异的存储引擎会到响应的物理存储位置,找到响应的数据,封装并返回效果。

  • 假如拿到了效果集,并且为select语句,MySQL会将效果放入到缓存中,防止下次再举行雷同的操纵而形成资本的斲丧,同时返回给客户端效果,至此,一条SQL语句的实行历程完毕啦。

  • 更多MySQL相干手艺文章,请接见MySQL教程栏目举行进修!

以上就是浅谈MySQL的团体架构的细致内容,更多请关注ki4网别的相干文章!

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

分享到:
赞(0) 打赏

支付宝扫一扫打赏

微信扫一扫打赏

标签:

上一篇:

下一篇:

相关推荐

0 条评论关于"浅谈MySQL的团体架构【MySQL教程】,mysql,整题架构"

最新评论

    暂无留言哦~~

博客简介

看古风美女插画Cos小姐姐,素材合集图集打包下载:炫龙网,好看二次元插画应有尽有,唯美小姐姐等你来。

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

服务热线:
 

 QQ在线交流

 旺旺在线