MySQL内部架构简介

MySQL的内部架构

结构示意图

structure.png

各部分功能说明

  • Server层:
    • 连接器:处理和客户端的连接,权限验证相关。
    • 缓存:查询缓存,查询结果会做缓存,如果下次查询命中缓存,那么直接从缓存中取数据,速度会更快。不过查询缓存命中率相当低,所以MySQL8.0中已经删除了查询缓存了。
    • 分析器:对查询语句做词法分析、语法分析。词法分析即是识别出这条SQL语句里的各个部分,例如里面的select或是表名称等等,等于像是解析这个句子的结构,类似于我们中文里分析一个句子的主语、谓语、宾语等等。语法分析则是分析SQL语句是否符合MySQL的语法规范,并且识别出这个语句是要干什么,类似于中文里的理解这个句子。
    • 优化器:对查询语句做优化。例如优化器会为查询缓存考虑选择哪个索引进行查询会比较快。或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序。
    • 执行器:执行器功能就是最终调用引擎提供的接口,进行数据查询。
  • 引擎层:引擎层是MySQL的存储数据引擎,这里是真正决定数据是怎么查询、存储的。存储引擎有InnoDB,MySiam,Memory这几类,一般用得最多的也是默认的是InnoDB,我们在create table的时候,可以设置engine,以选择存储引擎。不同的存储引擎有不同的特性。

你可能感兴趣的:(MySQL内部架构简介)