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、如果不使用两阶段提交:数据库的状态就有可能和用它的日志恢复出来的库的状态不一致。


ciwi
1 声望0 粉丝