欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL架构体系知识点总结

程序员文章站 2022-04-06 10:06:28
一  数据库和数据库实例 在mysql的学习研究中,存在两个非常容易混淆的概念,即数据库和数据库实例。在mysql中,数据库和数据库实例定义如下: 数据库:存...

一  数据库和数据库实例

在mysql的学习研究中,存在两个非常容易混淆的概念,即数据库和数据库实例。在mysql中,数据库和数据库实例定义如下:

数据库:存储数据的集合;

数据库实例:操作数据库的集合。

如上定义很清楚了,数据库是用来存储数据的,数据库实例是用来操作数据的,从操作系统的角度,数据库实例表现为一个进程,对应多个线程,

在非集群数据库架构中,数据库与数据库实例存在一 一对应关系,在数据库集群中,可能存在多个数据库实例操作一个数据库情况,即多对一关系。

二  mysql基架

对于mysql来说,虽然经历了多个版本迭代(mysql5.5,mysql 5.6,mysql 5.7,mysql 8),但每次的迭代,都是基于mysql

基架的,mysql基架大致包括如下几大模块组件:

(1)mysql向外提供的交互接口(connectors)

(2)管理服务组件和工具组件(management service & utilities)

(3)连接池组件(connection pool)

(4)sql接口组件(sql interface)

(5)查询分析器组件(parser)

(6)优化器组件(optimizer)

(7)缓存主件(caches & buffers)

(8)插件式存储引擎(pluggable storage engines)

(9)物理文件(file system)

MySQL架构体系知识点总结

(一)mysql向外提供的交互接口(connectors)

connectors组件,是mysql向外提供的交互组件,如java,.net,php等语言可以通过该组件来操作sql语句,实现与sql的交互。

(二)管理服务组件和工具组件(management service & utilities)

提供对mysql的集成管理,如备份(backup),恢复(recovery),安全管理(security)等

(三)连接池组件(connection pool)

负责监听对客户端向mysql server端的各种请求,接收请求,转发请求到目标模块。每个成功连接mysql server的客户请求都会被

创建或分配一个线程,该线程负责客户端与mysql server端的通信,接收客户端发送的命令,传递服务端的结果信息等。

(四)sql接口组件(sql interface)

接收用户sql命令,如dml,ddl和存储过程等,并将最终结果返回给用户。

(五)查询分析器组件(parser)

首先分析sql命令语法的合法性,并尝试将sql命令分解成数据结构,若分解失败,则提示sql语句不合理。

(六)优化器组件(optimizer)

对sql命令按照标准流程进行优化分析。

(七)缓存主件(caches & buffers)

缓存和缓冲组件

(八)mysql存储引擎

   1.什么是mysql存储引擎

mysql属于关系型数据库,而关系型数据库的存储是以表的形式进行的,对于表的创建,数据的存储,检索,更新等都是由mysql

存储引擎完成的,这也是mysql存储引擎在mysql中扮演的重要角色。

研究过sql server和oracle的读者可能很清楚,这两种数据库的存储引擎只有一个,而mysql的存储引擎种类比较多,如myisam存储

引擎,innodb存储引擎和memory存储引擎.

mysql之所以有多种存储引擎,是因为mysql的开源性决定的。mysql存储引擎,从种类上来说,大致可归结为官方存储引擎和第三

方存储引起。mysql的开源性,允许第三方基于mysql骨架,开发适合自己业务需求的存储引擎。

2.mysql存储引擎作用

mysql存储引擎在mysql中扮演重要角色,其作比较重要作用,大致归结为如下两方面:

作用一:管理表创建,数据检索,索引创建等

作用二:满足自定义存储引擎开发。

3.mysql引擎种类

不同种类的存储引擎,在存储表时的存储引擎表机制也有所不同,从mysql存储引擎种类上来说,可以分为官方存储引擎和第三方存储引擎。

当前,也存在多种mysql存储引擎,如myisam存储引擎,innodb存储引擎,ndb存储引擎,archive存储引擎,federated存储引擎,memory

存储引擎,merge存储引擎,parter存储引擎,community存储引擎,custom存储引擎和其他存储引擎。

其中,比较常用的存储引擎包括innodb存储引擎,myisam存储引擎和momery存储引擎。

4.几种典型mysql存储引擎比较

MySQL架构体系知识点总结

 (九)物理文件(file system)

实际存储mysql 数据库文件和一些日志文件等的系统,如linux,unix,windows等。

三 一个查询流程图

MySQL架构体系知识点总结

四  参看文献

【01】mysql权威指南  (美)paul dubois著    杨涛  杨晓云  王群  等译

【02】mysql技术内幕 innodb存储引擎   姜承尧著

【03】sql学习指南   (美)alan beaulieu 著