温馨提示×

温馨提示×

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

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

MySQL数据库基础架构是怎么样的

发布时间:2022-01-15 10:36:05 来源:亿速云 阅读:165 作者:小新 栏目:数据库

这篇文章给大家分享的是有关MySQL数据库基础架构是怎么样的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

1.Application Layer

MySQL的应用层提供各种用户对数据库的访问,也就是为数据库提供一个访问接口,让外部世界与数据连接起来,起一个桥的作用。实际生活中,我们会遇见很多不同功能桥,最初简陋的独木桥,现在的过街天桥,跨江的公路桥铁路桥,它们都各施其职。而在MySQL应用层中也有这么三种用户:administrators,clients and query users。Administrators可以使用管理型的接口和工具对数据库进行维护操作;比如:只有管理员用户才有权使用mysqladmind去关闭数据库服务,以及对数据库进行创建和彻底删除操作,还有一些分析调优的工具isamchk 和myisamchk、对数据库进行备份恢复操作的mysqldump,也都需要在administrators的权限才能执行。Clients是通过一些接口或是工具利用MySQL APIs对数据库进行访问。Query users是通过查询接口,就是mysql这个命令,去连接数据库,近而发出一些查询请求。

2.Logical Layer

逻辑层是MySQL数据库中核心的功能层,它主要有三大块:查询处理(Query Processor)、事务管理(Transaction Management)、恢复管理(Recovery Management)和存储管理(Storage Management)。

    2.1 Query Processor

当用户希望对底层数据库进行查看和处理操作,在这期间发生的查询都会被查询处理器进行提取并最优化以后执行输出,接下来我们说说整个的流程。

当用户出一个请求,查询处理器(QueryProcessor)会先去判断请求的类型,也就是前面我们说的,由谁发出的,如果是admin,就由DDL编译器(DDL Compiler)编译后,直接由执行引擎(Excution Engine)对底层数据库进行操作。如果是client,那么,先通过内部DML预编译器(DDL Precompiler)将用户的命令转化成相应的查询语句,接下来查询分析器(Query Parser)将语句分解成解析书的结构,以便接下来的组件可以理解,预查询编译器(Query Preprocesor)会检查这个sql语句是否正确有效,然后安全管理器(Security/Integration Manager)将会核实该用户是否具有对该数据库有接入访问的权限,这些都确认之后,会由查询优化器(Query Optimizer)对sql查询最优化执行,正因为有了这个机制,执行引擎(Excution Engine)在进行查询处理时可以尽可能快速地完成,这也是MySQL数据库性能优于其他的数据库系统的原因。

    2.2 Transaction Management

事务处理分为两个部分:事务管理器(Transaction Manager)和并发控制器(Concurrency-Control Manager),它们各自发挥着自己的多种职能。TM负责确保事务的自动化地记入日志和执行,还有解析死锁以及运行COMMIT和ROLLBACK SQL命令;CCM通过锁定机制确保事务分别独立的运行。

    2.3 Recovery Management

回复管理也有两部分构成:日志管理器(Log Manger)和恢复管理器(Recovery Manager)。这两个功能从字面上就很好理解,LM负责纪录对数据库的每一项操作,RM则负责将数据库恢复到最近一次稳定状态。

   2.4 存储管理(Storage Management)

在存储管理中,缓冲器管理(Buffer Manager)着内存和虚拟存储中的缓冲纪录,同时资源管理器(Resource Manager)和存储管理器(Storage Manager)也一起协同它完成对物理层数据库的操作。

3.Physical Layer

 物理层其实就是实际数据的存放地,比如:数据文件、日志文件、统计资料、原数据、索引等等。

到此,以上就是整个MySQL数据库理论性的结构 ,我们已经对MySQL数据库的内部结构有了一个初步的认识,原来就是这样。接下来就可以通过一些具体的实践操作,进一步深入体会这些部分在MySQL数据库中的功能特性。、

几点说明:

1. 在功能上,MySQL是基于组件的模块化设计,但事实上,MySQL既不是严格基于组件也非真正的模块化

2. MySQL的源代码中混合使用C和C++,而且面向过程的代码中使用了很多类,这些类仅是负责数据类型的表示,没有太多体现面向对象编程的思想

3. MySQL系统是用基于函数库和数据结构的方式整合代码的

4. MySQL的结构师一个类似与子系统组成的架构,子系统通过紧密和高效的配合,组成一个可靠的数据库系统

感谢各位的阅读!关于“MySQL数据库基础架构是怎么样的”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

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

AI