温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MYSQL数据库的基本架构

发布时间:2021-09-13 18:27:46 来源:亿速云 阅读:164 作者:chen 栏目:大数据

这篇文章主要讲解了“MYSQL数据库的基本架构”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MYSQL数据库的基本架构”吧!

MYSQL内部可分为两大部分:Server层和存储层

server层中大致包含了以下部分:

  • 连接器

  • 查询缓存

  • 分析层

  • 优化层

  • 执行层

首先介绍一下连接器

每次进入mysql前都需要登录,其实这就是在跟连接器打交道,你将登录信息给它检查,它提供你在该数据库操作中拥有的权限,我们所需要提供的登录信息如下所示:

mysql -h 主机ip -u 用户名 -p 密码

连接分为两种:长连接和短连接

长连接是指:连接成功后,如果客户端不断请求(执行sql语句),则一直使用同一个连接

短连接是指:每次执行完很少的几次查询就断开连接,下次查询需要重新建立新的连接

它们也各有各的优缺点:


运行效率占用内存空间
长连接当积累的数据大时,占用的内存是很大的
短连接

当长连接积累的数据大到内存装不下的时候,数据库会自动断开连接,也可以称为异常重启,但是这个问题也是有办法解决的:

  • 定期断开连接

  • 执行命令 mysql_reset_connection(重新初始化连接资源)

因为每次重新建立连接其实是很累的,效率也很低,所以一般都是使用长连接

有时候想查看数据库的连接状态,可以执行这个命令:

show processlist

有两种状态:空闲(sleep)和连接(query)两个

如果一定时间内一直没有操作数据库,那么它会自动断开连接,如果还要继续操作,就得重新建立新的连接

接下来介绍一下 查询缓存

缓存就是之前操作的信息暂时存储在一个地方,查询就是查找之前操作过的信息

那在数据库中,查询缓存就是查询之前执行过的sql语句,这样的运行效率会很高,但是也有一个缺点就是表已更新,它就失效了。。所以一般不用,除非那表是静态的,就是很长时间都不会更新的那种

为什么说查询缓存效率高呢?因为执行一个新的sql语句是需要很多流程的,当然使用的时候并没有表现出来。那现在就来一一介绍这些流程

当用户与数据库建立连接后,接下来就到了分析层。

分析层又分为两部分:词法分析和语义分析。

词法分析就是分析输入的mysql语句中的每个单词是什么意思,比如分析 show databases;这个语句。[show]是[查看]的意思,[databases]是指所有的数据库,所以这个语句就是用来查看所有数据库的。分析完每个词的意思后,接着就是判断是否符合mysql的语法,就跟咱学的英语是一样的。语法没问题后就继续往下执行,来到优化层。

优化层也分为两部分:判断使用哪个索引和决定各表的连接顺序

如果你的数据表中有很多个字段可以作为索引条件的话,优化层就会自动判断使用最适合的那个索引。如果有多个表进行关联,那它就会判断各个表的连接顺序。总的来说还是挺方便和智能的

万事俱备,只差执行,优化层结束后就来到了执行层。

开头我们说了,数据库是用来存储数据的,那肯定有存储引擎,存储引擎属于存储引擎层,而不是sercver层。

MYSQL的存储引擎大致有三种:innoDB(默认)、Memory、MylSAM。

那这么多存储引擎在哪里选择呢?答案就是执行层阶段,执行层的作用就是选择存储引擎,默认是innoDB,你也可以选择其他的,通过执行” engine= 存储引擎名 “来进行切换。除此之外,执行层还要确定该用户有没有执行该语句的权限,没有的话就会报错


最后,就是在存储引擎中对数据进行一系列操作啦,比如查询、插入、删除和修改等

感谢各位的阅读,以上就是“MYSQL数据库的基本架构”的内容了,经过本文的学习后,相信大家对MYSQL数据库的基本架构这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI