MySQL体系架构

MYSQL体系结构.png

开局一张图 内容全靠编

本文主要是说一下,MySQL都有哪些部分组成,这些部分分别是什么作用,俯瞰一下MySQL。

连接池

负责存储和管理与数据库的连接. 每个连接都是一个 IO 操作,, 每个 IO 操作对应一个线程。从而实现数据库为多个连接服务。

数据库服务管理工具

数据备份,集群,安全等工具。

SQL 接口

接受各种SQL语句(DDL,DML,存储过程等),并返回查询结果。

查询解析器

负责将 SQL 接口,接收的 SQL 语句进行解析,验证语法是否合法。

查询优化器

将 解析器 解析好的语法,进行优化并转化为执行计划。然后与存储引擎交互。

select id,name from t_user where age > 10;
优化后的执行计划是先过滤出 age>10 的数据,然后取出 idname 字段对应的值。而不是先查询所有数据再过滤。

缓存

查询缓存中存在结果,查询语句就直接返回。由各种小缓存组成,如:表缓存,记录缓存,权限缓存,引擎缓存等。

插件式存储引擎

存储引擎负责数据的存储与读取,与底层物理存储文件交互。MySQL存储引擎式插件式的,查询优化器与存储引擎通过接口进行交互,接口屏蔽了各个存储引擎的差异。

系统物理文件

日志文件

  • 错误日志

    默认开启。

  • 通用日志

    记录一般查询日志。

  • 二进制日志

    记录了对数据库的更改操作,并记录了执行时间,执行时长。但不记录查询操作。主要用于数据库的恢复和主从复制。

  • 慢查询日志

    记录所有执行时间超时的 SQL。默认超时时间为 10 秒。

配置文件

MySQL相关的配置文件。如 my.cnf

数据文件

存储各个存储引擎特有的数据文件,表元数据,日志文件等。

你可能感兴趣的:(MySQL体系架构)