编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

「数据库」Mysql体系结构及功能组件

wxchong 2024-08-08 01:17:41 开源技术 38 ℃ 0 评论

Mysql的设计特点是通过插件形式提供不同种类的存储引擎,弹性的,同时也是一个单进程多线程数据库,进程即实例。

数据库及实例的概念:

  • 数据库,数据库是物理操作系统文件或其他形式的文件类型的集合。
  • 实例,数据库后台进程/线程以及一个共享内存区组成,真正用来操作数据库文件的。

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

Mysql体系结构

MySQL逻辑系统架构分为3层:

  • 应用层,是MySQL体系架构的最上层,功能如连接处理、用户鉴权、安全管理等。
  • MySQL服务层,是MySQL Server的核心层,提供了MySQL数据库系统的所有逻辑功能。
  • 存储引擎层,其插件式的表存储引擎,具体与文件打交道的子系统。

应用层功能

应用层面对应用程序,管理客户端的接入。

  • 连接处理,从线程池中分配一个线程来和客户端进行连接。
  • 用户鉴权,检查接入用户的用户名,客户端主机地址和用户密码。
  • 安全管理,根据用户的权限来判断用户具体可执行哪些操作。

服务层功能

服务层是核心层,提供了MySQL数据库系统的所有逻辑功能。

  • Management Serveices & Utilities: 系统管理和控制工具。
  • Connection Pool: 连接池,进行身份验证、线程重用,连接限制,检查内存,数据缓存;管理用户的连接,线程处理等需要缓存的需求。
  • SQL Interface:SQL 接口,进行 DML、DDL,存储过程、视图、触发器等操作和管理;用户通过 SQL 命令来查询所需结果。
  • Parser:解析器,检查对象的权限;解析查询语句,最终生成语法树,会缓存SQL语句。
  • Optimizer:查询优化器,对查询语句进行优化,包括选择合适的索引,数据的读取方式。
  • Caches & buffers,缓存,包括全局和引擎特定的缓存,提高查询的效率。优先从缓存中取数据。

存储层功能

Mysql的存储引擎是插件式的,最常用的MyISAM、InnoDB。

  • 存储引擎,通过文件访问层抽象接口来定制一种文件访问的机制,由具体的引擎根据自身不同的特性来实现存储。
  • 物理文件,包括:redolog、undolog、binlog、errorlog、querylog、slowlog、data、index等。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表