I、MySQL根本逻辑架构

分层组件性能
server层连接器、查问缓存、分析器、优化器、执行器、内置函数等存储过程、触发器、视图
存储引擎层InnoDB、MyISAM、Memory等(默认InnoDB)数据的存储和提取
注:建表时应用参数engine=$engine指定存储引擎;   server为所有类型的存储引擎共用。

II、一条SQL语句如何执行

III、redo log和binlog

redo logredo logbinlog
参数innodb_flush_log_at_trx_commit=1sync_binlog=1
作用crash-safe归档
分层引擎特有server层共有
反对引擎InnoDB不辨别引擎
日志级别物理日志逻辑日志
写入形式循环写追加写
存储占有固定不固定
注:redo log的过程与《孔乙己》掌柜记账形象化类比了解

IV、两阶段提交


1、两阶段提交:redo log的写入拆成了两个步骤:prepare和commit。
2、利用场景:数据库复原和扩容
3、目标:怎么让数据库复原到半个月内任意一秒的状态?
4、如果不应用两阶段提交:数据库的状态就有可能和用它的日志复原进去的库的状态不统一。