mysql 基础架构

mysql分为Server层和存储引擎层

Server层

涵盖了大多数mysql的核心服务功能,以及所有内置的函数(例如日期、加密、数学等函数),所有跨存储引擎的操作都在Server层实现:存储过程、触发器、视图等

  • 连接器
    • 连接器主要负责建立连接、进行权限验证、维持和管理连接,
    • 连接完成后,如果没有后续操作,这个链接就处于空闲状态(sleep)
  • 查询缓存
    • Mysql拿到一个查询请求后,会去看之前执行过的以key-value对形式缓存在内存中的执行结果,key就是执行语句,value就是执行结果
    • 如果存在缓存,就直接返回,不存在会继续执行后面的操作
    • 不建议使用
      • 只要对表进行更新,那么这个表的所有缓存结果都会被清空
      • mysql 8.0之后就不再支持查询缓存
  • 分析器
    • 词法分析,识别sql语句要进行的操作、用到的表和字符串
    • 语法分析,判断sql语句是否满足mysql的语法规则
  • 优化器
    • 决定使用什么样的索引,如果是连表查询的话要判断连接表的顺序
  • 执行器
    • 判断对要操作的表有没有操作权限(读和写)
    • 通过存储引擎的接口,取出所需要的结果数据

存储引擎层

负责数据的存储和提取,架构模式是插件式的。支持InnoDb、MyIsam等,从mysql5.5.5版本后,InnoDB开始成为了Mysql默认的存储引擎

posted @ 2021-07-07 23:39  JamesVie  阅读(31)  评论(0编辑  收藏  举报