您好,登录后才能下订单哦!
这篇文章主要讲解了“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数据库的基本架构这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。