Mysql 体系结构系列之一

来源:互联网 发布:淘宝标题关键词顺序 编辑:程序博客网 时间:2024/06/13 12:21

前言:在写这篇mysql体系结构之前,脑袋里面想了半天它与oracle的体系结构的区别,本来以为mysql是简单的,比起oracle来,但是认真梳理,查找资料,发现并非如此。先来看一下mysql的体系结构图。

1.Mysql 架构图

从图1.1 可以发现,Mysql 由以下几个部分组成:

>>Connection Pool  连接池组件

>>Management Service & Utillties 管理服务和工具组件

>>SQL Interfaqce SQL接口组件

>>Parser Query  查询分析器组件

>>Optimizer  优化器组件

>>Caches & Buffers 缓冲区组件

>>Pluggable Storage Engines  插件式存储引擎

>>Physics file  物理文件

 

在了解mysql的体系结构之前,还是要做一些相关的知识疏导,什么是数据库?什么是数据库实例?

2.数据库与数据库实例

2.1数据库

物理操作系统文件或其他形式文件类型的集合(持久性数据的某些集合组成)。在Mysql里面,数据库文件可以是frm、myd、myi、ibd结尾的文件。当使用NDB引擎时,数据库的文件可能不是操作系统上的文件,而是存放于内存之中的文件,但是定义仍然不变。

2.2数据库实例

由数据库后台进程/线程以及一个共享内存区组成。共享内存可以被运行的后台进程/线程所共享。需要记住的是,数据库实例才是真正用来操作数据库文件的。

在Mysql中,实例和数据库的通常关系是一一对应的,即一个实例对应一个数据库,一个数据库对应一个实例,但是,在集群情况下可能存在一个数据库可被多个实例使用的情况。

Mysql被设计为一个单进程多线程架构的数据库,这点与SQL Server比较类似,但是与Oracle多进程的架构有所不同(Oracle的Windows版本也是单进程多线程的架构)。这也就是说,MySQL数据库实例在系统上的表现就是一个进程。

小结:

打个比喻:一筐碎石头,百来块,我们离它们很远,无法直接去拿取,那怎么办呢?那就制作一个工具吧,一个竹竿上面套一个口袋,我们可以用这个竹竿上的口袋去套取石头。碎石头就是存取的数据,竹竿上的口袋就是数据库管理工具,诸如Oracle,Mysql,Sql Server等等。而我们用工具去取石头,借用的各种力就是数据库实例。这里纯取个人理解,解释的不好,请大家见谅。。

 

小注解:一个小的知识点,但是理解起来还是费了不小劲,有点伤神呀,所以决定慢慢来理清,化繁为简,思而存之。

待续。。。。

 

原创粉丝点击