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

MySQL整体架构

作者头像
张申傲
发布2020-09-03 16:31:23
6730
发布2020-09-03 16:31:23
举报
文章被收录于专栏:漫漫架构路漫漫架构路

MySQL整体架构

在这里插入图片描述
在这里插入图片描述

一. Server层

Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等)。所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。

  1. 连接器:连接器负责跟客户端建立连接、获取权限、维持和管理连接。连接建立完成后,连接器会到权限表里面查出该客户端所拥有的权限。之后,这个连接里面所有的权限判断逻辑,都将依赖于此时读到的权限。这就意味着,一个用户成功建立连接后,即使你用管理员账号对这个用户的权限做了修改,也不会影响已经存在连接的权限。修改完成后,只有再新建的连接才会使用新的权限设置。
  2. 查询缓存:以<K,V>的形式保存查询结果,Key是SQL语句,Value是结果集。**查询缓存的失效非常频繁,只要有对一个表的更新,这个表上所有的查询缓存都会被清空。因此很可能你费劲地把结果存起来,还没使用呢,就被一个更新全清空了。**对于更新压力大的数据库来说,查询缓存的命中率会非常低。MySQL 8.0 版本已经删掉了查询缓存功能。
  3. 分析器:首先通过词法分析,判断SQL语句类型(查询/修改/删除)。然后进行语法分析,生成SQL语句,并进行语法校验。
  4. 优化器:对分析出来的SQL语句进行优化,主要包括:
    1. 在表里面有多个索引的时候,决定使用哪个索引
    2. 在一个语句有多表关联(join)的时候,决定各个表的连接顺序。
  5. 执行器:首先判断用户对该表的执行权限,如果没有权限,则返回无权限异常。然后调用存储引擎提供的接口,获取结果集。

二. 引擎层

而存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开始成为了默认存储引擎。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MySQL整体架构
    • 一. Server层
      • 二. 引擎层
      相关产品与服务
      对象存储
      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档