image.png

    • MySQL 驱动
      • MySQL 驱动会在底层跟数据库建立网络连接,有了网络连接,才能去发送请求给数据库服务器执行各种 SQL 语句;
    • 应用系统的数据库连接池
      • 系统通常都是多线程并发处理请求,数据库连接池可以维持多个数据库连接,让多线程使用里面的不同数据库连接去执行 SQL 语句,避免了数据库连接使用完之后就销毁的问题;
    • MySQL 的数据库的连接池
      • MySQL 架构体系中的第一个环节,就是连接池;
      • 连接池维护了与系统之间的多个数据库连接;
    • 监听网络连接的 MySQL 内部工作线程
      • MySQL 分配一个线程去处理连接池中的某个连接;
      • 这个线程负责从这个连接中去监听网络请求,以及读取请求数据,比如从网络连接中读取和解析出来一条我们的应用系统发送过去的 SQL 语句;
    • SQL 接口
      • 负责处理接收到的 SQL 语句;
      • 它是一套执行 SQL 语句的接口,MySQL 内部组件,专门用于接收工作线程从网络连接中读取的那些增删改查的 SQL 语句;
    • 查询解析器 Parser
      • 让 MySQL 能看懂 SQL 语句;
      • Parser 按照既定的 SQL 语法,对我们按照 SQL 语法规则编写的 SQL 语句进行解析,然后让 MySQL 理解这个 SQL 语句要干什么事情;
      • 例如,select id,name,age from users where id=1,解析后 MySQL 可以理解为以下几部分:
        • 要从 users 表里查询数据;
        • 查询 id 字段的值等于1的那行数据;
        • 对查出来的那行数据要提取里面的 id,name,age 三个字段;
    • 查询优化器
      • 选择最优的查询路径
      • 查询优化器,会针对你编写的复杂 SQL 生成查询路径树,然后从里面选择一条最优的查询路径出来,按照一个什么样的步骤和顺序,去执行哪些操作;
    • 执行器
      • 根据执行计划调用存储引擎的接口;
      • 执行器,会去根据我们的优化器生成的一套执行计划,然后不停的调用存储引擎的各种接口去完成 SQL 语句的执行计划,大致就是不停的更新或者提取一些数据出来
    • 存储引擎
      • 调用存储引擎接口,真正执行 SQL 语句;
      • 存储引擎,负责具体的 SQL 语句逻辑的执行,会按照一定的步骤去执行查询内存缓存数据,更新磁盘数据,查询磁盘数据等等一系列的操作;