MySQL 一条查询和一条更新语句的执行流程?
查询:连接器(认证)→ 查询缓存(8.0 已移除)→ 分析器(词法/语法解析生成语法树)→ 优化器(选择索引、连接顺序、生成执行计划)→ 执行器(调引擎接口,返回结果)。更新:同样经历连接/分析/优化/执行,额外步骤:① 引擎读目标行到内存(Buffer Pool);② 修改内存并写 undo log(记录旧值,用于回滚与 MVCC);③ 写 redo log(prepare 阶段);④ 执行器写 binlog;⑤ 引擎 redo log 提交(commit),两阶段提交保证两份日志一致。崩溃恢复依据 redo log 与 binlog。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。