共计 2106 个字符,预计需要花费 6 分钟才能阅读完成。
这篇文章给大家分享的是有关 MySQL 数据库基础架构是怎么样的的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。
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 数据库基础架构是怎么样的”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!