MySQL数据库的基础架构

发表于:2010-11-02 10:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

分享:

  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包含以下系统和核心库

  网络连接和网络通信协议子系统;线程,进程和内存分配子系统;查询解析和查询优化子系统;存储引擎接口子系统;各类存储引擎子系统;安全管理子系统;日志子系统;其他系统——如复制功能,错误功能

  mysys核心库文件:DDL,DML,DCL,TCL

22/2<12
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号