MySQL数据库基础架构是怎么样的
创始人
2024-12-24 07:22:30
0次

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的结构师一个类似与子系统组成的架构,子系统通过紧密和高效的配合,组成一个可靠的数据库系统

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...