MySQL体系结构

前面说了服务器硬件和操作系统对MYSQL性能的一些影响,那我们来看一下MYSQL本身性能的一些因素,

如果说MYSQL最与众不同的地方呢,就是插件式存储引擎了,这种架构呢,讲数据库查询处理以及其他系统的

任务,以及数据的存储,提取相分离,这种数据处理和数据存储相分离的设计呢,可以让我们在使用时根据存储

引擎的不同性能和特征,以及其他需要来选择数据存储的方式,要真正弄清楚设计的优缺点呢,首先要搞清楚MYSQL

的体系结构,所以下面我们就简单的来看一下,MYSQL具有特色的体系结构是什么样子的,这个体系最上面的一层就

称为客户端,这一层代表各种可以通过MYSQL连接协议,连接到MYSQL的客户端,比如说,PHP,JAVA,C API,.NET,ODBC,

JDBC,大家可以看得出来,这一层不是MYSQL所特有的,大多数CS的服务呢,都是采用的这样的体系结构,这一层主要完成

的是连接处理和权限认证,和安全等一些功能,连接到MYSQL的客户端呢,在MYSQL的进程中会有一个线程,这个连接的

查询只会在单独的线程中进行执行,也就是我们前面所说到的,每个连接的查询呢,只用到一个CPU的核心,那么这个

体系结构的第二层呢,是比较重要的一层了,大多数的MYSQL的核心服务呢,都在这一层中,大家从图上可以看到

包括了连接管理器,查询解析器,以及查询优化器,以及一系列的缓存,以及所有的内置函数,和SQL接口,

如果DDL和DML语句全都是在这里进行定义的,但是大家只要记住一点就是了,所有跨存储引擎的功能,都是在这几层中

来实现的,因为这一层又被称之为MYSQL服务层,在这一层实现所有与存储引擎无关的特性,什么是与存储引擎无关的特性呢,

其实上面已经做了一些说明了,给大家举个例子,方便大家记忆,比如说,select语句,这个语句呢,对于所有存储引擎来说,

所实现的功能全都是一样的,获取存储在存储文件中的数据,并进行过滤,把数据给显示出来,所以select语句的功能,

在MYSQL的服务层所实现的,而对于如何获得我们的查询数据,这个具体的实现方式呢,则是由下一层,存储引擎来进行实现

那我们接下来就看看MYSQL体系结构的第三层,也就是MYSQL从其他数据库呢,区别最大的地方了,

这一层被称之为存储引擎层,MYSQL是一款非常优秀的开源数据库,其中定义了一系列的存储引擎的

接口,只要符合存储引擎接口的要求,完全符合自己需要的存储引擎,比如我们比较常见的InnoDB存储引擎,

其实最初是由第三方公司所开发的一款存储引擎,目前MYSQL所支持的存储引擎呢还有很多,最常用的比如刚才

提到的InnoDB,MyISAM,XtraDB,CSV,Memory,MRG_MYISAM,以及archive,tokudb,这是非常非常多的

我们下面会对常用的存储引擎进行介绍,从这里我们不难看出,这种插件式引擎架构呢,最大的特点他就是灵活,

我们可以根据不同的应用特点,选择不同的存储引擎,每一款存储引擎,多有优缺点,但是对于开发人员来说呢,

我们面对的只是MYSQL的服务器,MYSQL提供的一些接口,所以具体使用的是什么存储引擎,对于开发人员来说它是

透明的,对于某些存储引擎来说呢,由于SQL语句有一些差异,所以对开发人员可能也会有一定的影响,比如archive

存储引擎,由于不支持update和delete语句,所以如果开发人员在这种情况下使用了存储引擎本身不支持的语句呢,

会得到相应的报错信息,另外还有一点要注意的就是,存储引擎是针对于表的,而不是针对于库的,在一个库中呢,

可以使用不同的存储引擎来遍历不同的表,非常不建议大家混合的使用存储引擎,但是从功能上来说呢,了解MYSQL

的存储结构呢,我们下面对MYSQL进行调优呢,是非常重要的,所以还请大家仔细的看一下上面的一张图,下面我们

就来介绍MYSQL常用的一些存储引擎,并对每一种存储引擎的特点和场景呢,对大家进行一个简单的说明,MYSQL所使用的

存储引擎呢,对数据库的性能产生直接的影响,所以还希望大家了解所使用的存储引擎的特点,完了之后再使用存储引擎

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值