MySQL逻辑架构

mysql数据库的逻辑架构整体分为三层,图示:
MySQL逻辑架构_第1张图片

  • 第一层是客户端层,所包含的并不是MySQL独有的技术,它们都是服务于C/S程序或者是这些程序所需要的,诸如连接处理,身份验证、安全性等功能均在这一层处理。
  • 第二层是SQL层(SQL Layer),也叫核心服务层。在MySQL数据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断、SQL解析、执行计划优化、Query cache的处理以及所有内置的函数(如日前时间、加密等函数)、存储过程、视图、触发器等。
  • 第三层是存储引擎层(Storage Engine Layer),是底层数据存取操作实现的部分,由多种存储引擎共同组成。它们负责存储和获取所有存储在MySQL中的数据,类似Linux的众多文件系统。

SQL Layer层

SQL Layer层结构如图:
MySQL逻辑架构_第2张图片

  • Connectors:指的是不同语言中与SQL的交互。
  • Management Services & Utilities:管理服务和工具组件,从备份和恢复的安全性、复制、集群、管理、配置、迁移和元数据等方面管理数据库。
  • Connection Pool:连接池,是为解决资源的频繁分配、释放所造成的问题而为数据库建立的一个“缓冲池”。原理:预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕后再放回去。它的作用是进行身份验证、线程重用、连接限制、管理用户的连接、线程处理等需要缓存的需求。
  • SQL Interface(SQL接口):接受用户的SQL命令,并且返回用户需要查询的结果。
  • Parser解析器:验证和解析SQL命令,主要通过语法规则来验证和解析,比如是否使用了错误的关键字或者关键字的顺序是否正确等。
  • Optimizer查询优化器:SQL语句在查询执行之前,会使用查询优化器对查询进行优化,得出一个最优的策略。
  • Cache和Buffer:将客户端提交给Mysql的select类query请求的返回结果集缓存到内存中,与该query的一个hash值做一个对应。如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。这个缓存机制是由一系列的小缓存组成,比如,表缓存、记录缓存、key缓存、权限缓存等。
  • Pluggable Storage Engines:可插拔存储引擎。
  • File System:数据存储在运行于裸设备的文件系统上,支持的文件类型有EXT3、EXT4 、NTFS、NFS。
  • Files&Logs :数据文件以及redo、undo等各种日志文件。

你可能感兴趣的:(MySQL,mysql,架构,数据库)