数据库架构
说说 MySQL 的基础架构
连接层主要是负责客户端连接的管理,包括验证用户身份,权限校验,连接管理等
服务层是 MySQL 的核心,主要负责查询解析、优化、执行等操作
sql 语句会经过解析,优化器等优化,然后转发到存储引擎执行,并返回结果
binlog 在服务层,负责记录 SQL 语句的变化。它记录了所有对数据库进行更改的操作,用于数据恢复、主从复制等
存储引擎层负责数据的实际存储和提取

一条查询语句是如何执行的
当我们执行一条 SELECT 语句时,并不会直接去磁盘读取数据,而是经过一些步骤后再返回结果
- 客户端发送 SQL 查询语句到 MySQL 服务器
- MySQL 服务器的连接器开始处理这个请求,跟客户端建立连接、获取权限、管理连接。
- 解析器对 SQL 语句进行解析,检查语句是否符合 SQL 语法规则,确保数据库、表和列都是存在的,并处理 SQL 语句中的名称解析和权限验证
- 优化器负责确定 SQL 语句的执行计划,这包括选择使用哪些索引,以及决定表之间的连接顺序等
- 执行器会调用存储引擎的 API 来进行数据的读写
- 存储引擎负责查询数据,并将执行结果返回给客户端。客户端接收到查询结果,完成这次查询请求