前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 基础架构

MySQL 基础架构

作者头像
星尘的一个朋友
发布2021-03-20 14:12:43
5160
发布2021-03-20 14:12:43
举报

基础架构

架构图

0d2070e8f84c4801adbfa03bda1f98d9.png
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. 返回结果
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-03-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基础架构
  • 架构图
  • Server 层各部分功能职责
    • 连接器
      • 查询缓存
        • 分析器
          • 优化器
            • 执行器
            • 存储引擎
            • 一条查询语句是如何执行的
            相关产品与服务
            云数据库 SQL Server
            腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档