MySQL 基础架构

基础架构

 

架构图

 

0d2070e8f84c4801adbfa03bda1f98d9.png

 

MySQL 架构分为两部分,server层 存储引擎。其中 server 包含 连接器、查询缓存、分析器、优化器、执行器。存储引擎架构模式为插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎,最常用的是 InnoDB。

 

Server 层各部分功能职责

 

连接器

  1. 建立数据库连接,验证用户名密码是否匹配。
  2. 读取用户权限信息并记录下来之后所有的权限验证都使用这个信息。(建立连接后修改了用户权限,需要重新登录才会生效。就是因为 MySQL 这一步的操作)
  3. 权限验证时机
    1. 在查询缓存命中返回结果之前。
    2. 执行器执行之前。

 

查询缓存

  1. 查询语句优先查询缓存,如果缓存命中直接返回。否则继续按序执行。通过SQL语句来判断缓存是否命中。
  2. 缓存存储内容为 key,value 形式,执行SQL语句是 key,结果是 value
  3. 每当表发生更新动作,缓存内容先被清空。
  4. 不建议使用,通过 query_cache_type demand 关闭。查询时指定使用缓存 (MySQL 8.0 之后删除了这个功能。)

mysql> select SQL_CACHE * from T where ID=10;

 

 

分析器

  1. 获取语义,分析输入的语句是什么目的,是查询还是删除还是修改等等。
  2. 语法分析,检查语法输入是否正确。
  3. 表、字段分析,分析要执行的表或字段是否存在。

 

优化器

  1. 对SQL执行语句进行优化,是否使用索引,多结果集如何关联查询等。

 

执行器

  1. 执行优化器优化后的 SQL 语句,在执行前进行权限验证,使用的信息为连接器提供的权限信息。
  2. 调用存储引擎接口执行具体的 SQL 语句。

 

存储引擎

  1. 提供数据访问接口。
  2. 进行数据的持久化存储。

 

一条查询语句是如何执行的

mysql> select * from T where ID=10;
  1. 建立连接
  2. 查询缓存
  3. 语义语法分析
  4. 语句优化
  5. 执行执行,调用存储引擎接口查询数据
  6. 返回结果
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值