File tree Expand file tree Collapse file tree 1 file changed +1
-19
lines changed
Expand file tree Collapse file tree 1 file changed +1
-19
lines changed Original file line number Diff line number Diff line change 1818
1919<!-- /TOC -->
2020
21- <!-- TOC -->
22-
23- - [ 一 MySQL 基础架构分析] ( #一-mysql-基础架构分析 )
24- - [ 1.1 MySQL 基本架构概览] ( #11-mysql-基本架构概览 )
25- - [ 1.2 Server 层基本组件介绍] ( #12-server-层基本组件介绍 )
26- - [ 1) 连接器] ( #1-连接器 )
27- - [ 2) 查询缓存(MySQL 8.0 版本后移除)] ( #2-查询缓存mysql-80-版本后移除 )
28- - [ 3) 分析器] ( #3-分析器 )
29- - [ 4) 优化器] ( #4-优化器 )
30- - [ 5) 执行器] ( #5-执行器 )
31- - [ 二 语句分析] ( #二-语句分析 )
32- - [ 2.1 查询语句] ( #21-查询语句 )
33- - [ 2.2 更新语句] ( #22-更新语句 )
34- - [ 三 总结] ( #三-总结 )
35- - [ 四 参考] ( #四-参考 )
36-
37- <!-- /TOC -->
38-
3921本篇文章会分析下一个 sql 语句在 MySQL 中的执行流程,包括 sql 的查询在 MySQL 内部会怎么流转,sql 语句的更新是怎么完成的。
4022
4123在分析之前我会先带着你看看 MySQL 的基础架构,知道了 MySQL 由那些组件组成已经这些组件的作用是什么,可以帮助我们理解和解决这些问题。
@@ -137,7 +119,7 @@ update tb_student A set A.age='19' where A.name=' 张三 ';
137119* 执行器收到通知后记录 binlog,然后调用引擎接口,提交 redo log 为提交状态。
138120* 更新完成。
139121
140- 这里肯定有同学会问,为什么要用两个日志模块,用一个日志模块不行吗?
122+ ** 这里肯定有同学会问,为什么要用两个日志模块,用一个日志模块不行吗? **
141123
142124这是因为最开始 MySQL 并没与 InnoDB 引擎( InnoDB 引擎是其他公司以插件形式插入 MySQL 的) ,MySQL 自带的引擎是 MyISAM,但是我们知道 redo log 是 InnoDB 引擎特有的,其他存储引擎都没有,这就导致会没有 crash-safe 的能力(crash-safe 的能力即使数据库发生异常重启,之前提交的记录都不会丢失),binlog 日志只能用来归档。
143125
You can’t perform that action at this time.
0 commit comments