SQL 执行流程
⚠️ 说明:不同数据库的具体实现架构不同,下图与流程展示的是数据库系统中常见的通用设计思想 Step 1:传输层(Transport Layer) 客户端通过传输层协议(如 TCP)向数据库发送 SQL 语句 负责: 网络通信 请求数据的接收与响应返回 Step 2:命令解析器(Command Parser) 接收 SQL 语句并进行: 语法分析(Syntax Analysis) 语义分析(Semantic Analysis) 分析完成后,生成 查询树(Query Tree) 查询树是 SQL 语句的结构化表示 Step 3:优化器(Optimizer) 接收查询树 根据统计信息和代价模型进行优化 生成 执行计划(Execution Plan) 决定: 使用哪个索引 表的访问顺序 连接方式(如 Nested Loop、Hash Join 等) Step 4:执行器(Executor) 接收执行计划 按照执行计划逐步执行 SQL 不直接访问磁盘,而是通过下层模块获取数据 Step 5:访问方法(Access Methods) 提供 具体的数据访问逻辑 根据执行计划: 决定如何访问数据(全表扫描、索引扫描等) 从存储引擎中 读取或修改数据 Step 6:缓冲区管理器(Buffer Manager,读操作) 适用于 只读查询(如 SELECT) 访问方法判断 SQL 是否为 只读语句 若是 SELECT: ...