MySQL学习笔记-1
I、MySQL基本逻辑架构
文章图片
分层 | 组件 | 功能 |
---|---|---|
server层 | 连接器、查询缓存、分析器、优化器、执行器、内置函数等 | 存储过程、触发器、视图 |
存储引擎层 | InnoDB、MyISAM、Memory等(默认InnoDB) | 数据的存储和提取 |
注:建表时使用参数engine=$engine指定存储引擎;
server为所有类型的存储引擎共用。
II、一条SQL语句如何执行
文章图片
III、redo log和binlog
redo log | redo log | binlog |
---|---|---|
参数 | innodb_flush_log_at_trx_commit=1 | sync_binlog=1 |
作用 | crash-safe | 归档 |
分层 | 引擎特有 | server层共有 |
支持引擎 | InnoDB | 不区分引擎 |
日志级别 | 物理日志 | 逻辑日志 |
写入方式 | 循环写 | 追加写 |
存储占有 | 固定 | 不固定 |
注:redo log的过程与《孔乙己》掌柜记账形象化类比理解
IV、两阶段提交 【MySQL学习笔记-1】
文章图片
1、两阶段提交:redo log的写入拆成了两个步骤:prepare和commit。
2、应用场景:数据库恢复和扩容。
3、目的:怎样让数据库恢复到半个月内任意一秒的状态?
4、如果不使用两阶段提交:数据库的状态就有可能和用它的日志恢复出来的库的状态不一致。
推荐阅读
- EffectiveObjective-C2.0|EffectiveObjective-C2.0 笔记 - 第二部分
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- Android中的AES加密-下
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习