mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-06-16 18:10:13 +08:00
Update 一条sql语句在mysql中如何执行的.md
This commit is contained in:
parent
eaa3a14147
commit
03c6c23718
@ -18,24 +18,6 @@
|
||||
|
||||
<!-- /TOC -->
|
||||
|
||||
<!-- TOC -->
|
||||
|
||||
- [一 MySQL 基础架构分析](#一-mysql-基础架构分析)
|
||||
- [1.1 MySQL 基本架构概览](#11-mysql-基本架构概览)
|
||||
- [1.2 Server 层基本组件介绍](#12-server-层基本组件介绍)
|
||||
- [1) 连接器](#1-连接器)
|
||||
- [2) 查询缓存(MySQL 8.0 版本后移除)](#2-查询缓存mysql-80-版本后移除)
|
||||
- [3) 分析器](#3-分析器)
|
||||
- [4) 优化器](#4-优化器)
|
||||
- [5) 执行器](#5-执行器)
|
||||
- [二 语句分析](#二-语句分析)
|
||||
- [2.1 查询语句](#21-查询语句)
|
||||
- [2.2 更新语句](#22-更新语句)
|
||||
- [三 总结](#三-总结)
|
||||
- [四 参考](#四-参考)
|
||||
|
||||
<!-- /TOC -->
|
||||
|
||||
本篇文章会分析下一个 sql 语句在 MySQL 中的执行流程,包括 sql 的查询在 MySQL 内部会怎么流转,sql 语句的更新是怎么完成的。
|
||||
|
||||
在分析之前我会先带着你看看 MySQL 的基础架构,知道了 MySQL 由那些组件组成已经这些组件的作用是什么,可以帮助我们理解和解决这些问题。
|
||||
@ -137,7 +119,7 @@ update tb_student A set A.age='19' where A.name=' 张三 ';
|
||||
* 执行器收到通知后记录 binlog,然后调用引擎接口,提交 redo log 为提交状态。
|
||||
* 更新完成。
|
||||
|
||||
这里肯定有同学会问,为什么要用两个日志模块,用一个日志模块不行吗?
|
||||
**这里肯定有同学会问,为什么要用两个日志模块,用一个日志模块不行吗?**
|
||||
|
||||
这是因为最开始 MySQL 并没与 InnoDB 引擎( InnoDB 引擎是其他公司以插件形式插入 MySQL 的) ,MySQL 自带的引擎是 MyISAM,但是我们知道 redo log 是 InnoDB 引擎特有的,其他存储引擎都没有,这就导致会没有 crash-safe 的能力(crash-safe 的能力即使数据库发生异常重启,之前提交的记录都不会丢失),binlog 日志只能用来归档。
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user