数据库
首页 > 数据库> > mysql优化 个人笔记 非礼勿扰 -m07

mysql优化 个人笔记 非礼勿扰 -m07

作者:互联网

Mysql基本架构图

在这里插入图片描述

Mysql 日志

1. binlog (server)
数据库data目录下的binlog文件
在这里插入图片描述

show VARIABLES like '%binlog%'

在这里插入图片描述
binary log

恢复数据过程

  1. 找到最近的一次全量备份数据
  2. 从备份的时间点开始,将备份的binlog取出来,重放到恢复的那个时刻

2. redolog (存储引擎 innodb)
数据库data目录下有这俩文件
在这里插入图片描述

3. undolog(Innodb存储引擎)

ACID:
A(Atomicity) 原子性
C(Consistency)一致性
I(Isolation)隔离性
D(Durability)持久性

binlog redolog

  1. redo 是innodb独有的 binlog是所有引擎都可以使用的
  2. redo是物理日志 记录的是在某个数据页上做了什么修改,
    binlog是逻辑日志 记录的是这个语句的原始逻辑
  3. redo是循环写的 空间会用完,binlog是可以追加的,不会覆盖之前的日志信息
  4. 数据更新流程
    在这里插入图片描述
1. 执行器先从引擎中找到数据
   如果在内存中就直接返回
   如果不在内存就查询后返回2. 执行器拿到数据后先修改  
   然后调用引擎接口重新吸入数据3. 引擎将数据更新到内存 同时写入redo log
	此时处于prepare阶段
	并通知执行器完成,随时可以操作4. 执行器将操作写入binlog5. 执行器调用存储引擎的事物提交接口,
	引擎把刚刚写完的redo 改成commit状态
	更新完成。
 注意:1.  先写redo log 再写binlog 
       redo log写完了 binlog没写呢 服务器断电了 
       重启之后redo log 恢复数据与binlog对不上      2. 先写binlog 也是一样

知识点
set @t1 = 0;select @t1; --> 0 set @t2:=3;select @t2 ; -->3

标签:binlog,非礼,log,数据,写入,m07,引擎,mysql,redo
来源: https://blog.51cto.com/u_12198094/2705770