上一篇我们阐述mysql锁机制以及MCVV多版本并发控制消除
读写阻塞本篇我们看看redo log、undo log以及bin log

标题 网址
单机存储引擎到mysql的思考一 https://blog.csdn.net/xk4848123/article/details/105166855
单机存储引擎到mysql的思考二 https://blog.csdn.net/xk4848123/article/details/105195921
单机存储引擎到mysql的思考三 https://blog.csdn.net/xk4848123/article/details/105207797

redo log

redo中的re是重新,do是做,字面上来看是重做日志,没错事实上也就是重做日志。redo log在数据库重启恢复的时候被使用,因为其属于物理日志的特性,恢复速度远快于逻辑日志。

1.Write Ahead Log策略
Write-Ahead Log (WAL 预写式日志):对数据文件的修改(它们是表和索引的载体)必须是只能发生在这些修改已经记录了日志之后,也就是说,在描述这些变化的日志记录冲刷到永久存储器之后
这是事务ACID中D(Durability持久性)的要求。

2.CheckPoint技术和作用
a.缩短数据库的恢复时间
当数据库宕机时,数据库不需要重做所有日志,因为CheckPoint之前的页都已经刷新回磁盘。只需对CheckPoint后的重做日志进行恢复,从而缩短恢复时间
b.缓冲池不够用时,将脏页刷新到磁盘
当缓存池不够用时,LRU算法会溢出最近最少使用的页,若此页为脏页,会强制执行CheckPoint,将该脏页刷回磁盘
c.重做日志不可用时,刷新脏页
不可用是因为对重做日志的设计是循环使用的。重做日志可以被重用的部分,是指当数据库进行恢复操作时不需要的部分。若此时这部分重做日志还有用,将强制执行CheckPoint,将缓冲池的页至少刷新到当前重做日志的位置
d.CheckPoint做的事
将缓存池中的脏页刷回磁盘
3.LSN(Log Sequence Number)
LSN是用来标记版本的
LSN是8字节的数字
每个页有LSN,重做日志也有LSN,CheckPoint也有LSN
CheckPoint技术通过比对数据页和重做日志的LSN(版本)来进行恢复

undo log

1.Undo Log 保证事务的原子性,比如某一时刻数据库 DOWN 机了,一个事务正在处理。数据库重启的时候就要根据日志进行回滚,把未提交事务的更改恢复到事务开始前的状态。即,当数据 crash-recovery 时,所有已经 prepared 但是没有 commit 的 transactions 将会应用 undo log 做 roll back。
2.在 InnoDB 引擎中,用 Undo Log 来实现 MVCC
思考二中我们已经讲到了MVCC,这是还要做个补充
每张表的每一行还有一个隐式的列就是 undo log ptr(指向undo log的指针),这样RR隔离级别下就能找到相应版本的快照,保证可重复读。

binlog及主从复制

binlog是什么

binlog是mysql的逻辑日志,记录的是逻辑sql修改语句。

主从复制

介绍一下mysql主从是异步复制过程。master开启bin-log功能,日志文件用于记录数据库的读写增删需要开启3个线程,master IO线程,slave开启 IO线程 SQL线程,Slave 通过IO线程连接master,并且请求某个bin-log,position之后的内容。MASTER服务器收到slave IO线程发来的日志请求信息,io线程去将bin-log内容,position返回给slave IO线程。slave服务器收到bin-lo日志内容,将bin-log日志内容写入relay-log中继日志,创建一个master.info的文件,该文件记录了master ip 用户名 密码 master bin-log名称,bin-log position。slave端开启SQL线程,实时监控relay-log日志内容是否有更新,解析文件中的SQL语句,在slave数据库中去执行。那什么是半同步复制,又是哪个版本开始支持的呢。

单机存储引擎到mysql的思考三相关推荐

  1. 单机存储引擎到mysql的思考一

    大家都知道mysql现在很火,很多招后端工程师的要求其中一项就是 精通mysql 但是我们真的了解mysql吗?那么笔者要下面卖膏药了~ 标题 网址 单机存储引擎到mysql的思考一 https:// ...

  2. 单机存储引擎到mysql的思考二

    上一篇中我们主要介绍mysql存储引擎物理结构进而引发对索引的 思考 但是并发事务和锁机制又是怎样的,下面我们来探索一下 标题 网址 单机存储引擎到mysql的思考一 https://blog.csd ...

  3. 什么是存储引擎以及MySQL常见的三种数据库存储引擎

    转载

  4. 存储引擎:MySQL系列之七

    一.MyISAM存储引擎 缺点: 不支持事务 最小粒度锁:表级 读写相互阻塞,写入不能读,读时不能写 不支持MVCC(支持多版本并发控制机制) 不支持聚簇索引 不支持数据缓存 不支持外键 崩溃恢复性较 ...

  5. 存储引擎和Mysql服务层出现索引信息不一致错误提示

    2019独角兽企业重金招聘Python工程师标准>>> 错误日志: [ERROR] Table vip_cube/imp_sup_dm_sup_brand_name_goods_on ...

  6. CubeFS存储技术揭秘(2)— 纠删码单机存储引擎

    00 背景 CubeFS自3.0.0版本开始提供低成本的纠删码存储(BlobStore),BlobStore是一个高可靠.高可用.低成本.支持EB规模的Blob存储.通过前文(CubeFS存储技术揭密 ...

  7. mysql外键的存储引擎_10.mysql存储引擎

    2.1 存储引擎概述 和大多数的数据库不同, MySQL中有一个存储引擎的概念, 针对不同的存储需求可以选择最优的存储引擎. 存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式 .存储引擎 ...

  8. mysql数据库恢复数据_【技术分享】使用Innodb存储引擎的mysql数据库恢复

    作者:维一零 预估稿费:400RMB(不服你也来投稿啊!) 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 前言 某天,在测试一张新数据表的字段时,由于在phpmyadmin不断 ...

  9. 导学+初识MySQL+SQL语法规范+数据库相关操作+表相关操作+MySql存储引擎介绍+MySQL表的创建+测试数据类型

    一.导学 1.什么是SQL? 结构化查询语言,数据库管理系统通过SQL语言来管理数据库中的数据: 2.SQL语言组成部分 (1)DDL--数据定义语言,主要定义数据库.表.视图.索引和触发器等 (2) ...

最新文章

  1. stc单片机 读写flash_STM32单片机基础知识杂谈(1)
  2. 《linux内核完全剖析:基于0.12内核》读书笔记一
  3. sdut 2088 数据结构实验之栈与队列十一:refresh的停车场
  4. 5.5 function
  5. 如何成为阿里巴巴大数据开发工程师?你要学习很多东西
  6. 计算机程程序员英语,计算机程序员常用英语词汇(2)
  7. iOS发展系列II - UILabel 使用摘要
  8. android sdk与adt版本,eclipse中sdk与adt版本不兼容该怎么解决? 三种方法帮你搞定
  9. bzoj 4006 管道连接 —— 斯坦纳树+状压DP
  10. SqlServer2000中作业无法删除的原因和解决办法
  11. 120万名 GoDaddy 客户数据遭泄露
  12. 网站流量少的原因及解决方案
  13. R语言中经纬度度分秒转小数
  14. 【高通SDM660平台】(2) --- Camera Kernel 驱动层代码逻辑分析
  15. 第十四届蓝桥杯第一期模拟赛 python
  16. Linux 服务器上传下载文件到阿里网盘
  17. 对于噪声数据理解以及Min-Max 规范化和 Score规范化(零-均值规范化)的实例【数据预处理】
  18. 【HarmonyOS HiSpark AI Camera试用连载 】AI_Camera_Hi3516DV300开发套件非专业开箱
  19. jQuery元素操作-遍历元素
  20. Java运行乱码,Idea编码设置

热门文章

  1. 浅谈PPM (Project Portfolio Management) - 1
  2. 师生共话:研究生论文写作时间管理
  3. Spring集成Spring-data-redis RedisCacheManager缓存源码分析
  4. 02-线性系统稳定性及劳斯判据
  5. 机器学习中的线性代数知识(上)
  6. LabVIEW用布尔控件实现上升沿和下降沿触发
  7. 编程界的变革者:Brendan Eich
  8. 以最美的名义 大连京东物流小哥登上2018央视新春舞台
  9. json序列化按顺序输出
  10. 一台服务器最多多少个线程,一个电脑最多能开启多少个线程?