当前位置: 首页 > wzjs >正文

长沙做网站设计网络推广发帖网站

长沙做网站设计,网络推广发帖网站,网站建设论文结束语,公司做竞拍网站的收入怎么报税目录 一、bin log 与 redo log 的区别1)实现方式不同:2)日志内容不同:3)记录方式不同:4)使用场合不同: 二、为什么快速恢复使用 redo log 而不用 bin log? 面试题&#x…

目录

    • 一、bin log 与 redo log 的区别
      • 1)实现方式不同:
      • 2)日志内容不同:
      • 3)记录方式不同:
      • 4)使用场合不同:
    • 二、为什么快速恢复使用 redo log 而不用 bin log?

面试题:bin log 和 redo log 都是作为数据恢复使用的日志文件,二者有什么区别?

一、bin log 与 redo log 的区别

bin logredo log 的作用虽然都是数据恢复,但是二者实际上大不相同,整体可以概括为 四点区别

1)实现方式不同:

  • 实现 redo log 是 InnoDB 引擎特有的;
  • 而 binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使用。

2)日志内容不同:

  • redo log 是 物理日志,记录的是 “在XXX数据页上做了XXX修改”;
  • 而 binlog 是 逻辑日志,记录的是原始逻辑,即对应的 SQL 语句。

什么是 物理日志 和 逻辑日志?

  • 物理日志:记录的是每一个 page 页中 具体存储的值是多少,在这个数据页上做了什么修改。比如:某个事物将系统表空间中的第 100 个页面中偏移量为 1000 处的那个 字节的值从1改为2
  • 逻辑日志:记录的是每一个 page 页中具体数据是怎么变动的,它会记录一个 变动的过程SQL 语句的逻辑。比如:把一个 page 页中的第一个数据从 1 改为 2,再从 2 改为 3,逻辑日志就会记录整个过程:1->2, 2->3。

3)记录方式不同:

  • redo log 是 循环写入文件,空间大小是固定的,需要 写入点(write pos)和 检查点(check point)搭配使用;
  • binlog 是 追加写,空间大小是不固定的,写到一定大小会切换到下一个,并不会覆盖以前的日志。

注意: redo log 文件空间大小虽然是固定的,但一般不止一个文件,当最后一个文件写满时则回溯到第一个文件,进行覆盖写。

为了方便理解 redo log 循环写的实现方式,可以参考下图:

  • 写入点(write point):表示日志当前记录的位置,当 ib_logfile_4 写满后,会从 ib_logfile_1 从头开始记录。
  • 检查点(check point):表示将日志记录的修改写进磁盘,完成 数据落盘。数据落盘后 check point 会将日志上的相关记录擦除掉,即:
    • write pos -> check point 之间的部分是 redo log 空着的部分,用于记录新的日志;
    • check point -> write pos 之间是 redo log 中待落盘的数据修改记录。

注意: 如果 write pos 追上了 check point,表示 redo log 日志写满,这时候不能再执行新的更新,得停下来先擦掉一些记录,把 check point 推进一下。

4)使用场合不同:

  • redo log 作为服务器异常宕机后事务数据自动恢复使用;
  • binlog 可以作为主从复制和数据恢复使用,binlog 没有自动 crash-safe 能力。

CrashSafe 指 MySQL 服务器宕机重启后,能够保证:

  1. 所有已经提交的事务数据仍然存在;
  2. 所有没有提交的事务数据自动回滚。

二、为什么快速恢复使用 redo log 而不用 bin log?

最核心的一点就是 两者记录的数据变更粒度是不一样 的。

以修改数据为例:

  • binlog 是以 为记录主体,在 ROW 模式下,binlog 保存的表中每行的变更记录。
  • 由于 MySQL 是以页为单位进行刷盘的,每一页的数据单位为 16K,所以在刷盘的过程中需要把数据刷新到磁盘的多个扇区中去。而把 16K 数据刷到磁盘的每个扇区里这个过程是 无法保证原子性的,如果数据库宕机,那么就可能会造成一部分数据成功过,而一部分数据失败的情况。而通过 binlog 这种级别的日志是无法恢复的,因为一个 update 可能更改了多个磁盘区域的数据,所以这个时候得需要通过 redo log 这种 记录到磁盘数据级别 的日志进行数据恢复。

整理完毕,完结撒花~ 🌻





参考地址:

1.MySQL面试 | bin log与redo log的区别?https://www.bilibili.com/video/BV1h4AkeKENf

http://www.dtcms.com/wzjs/148065.html

相关文章:

  • 江苏润通市政建设工程有限公司网站企业网站推广技巧
  • 深深圳的网站建设公司百度推广工作好干吗
  • 网站建设公司顺义百度导航最新版本免费下载
  • 兴国电商网站建设站长工具的网址
  • 杭州哪家做网站网络推广外包业务销售
  • 哪个网站可以做中国代购市场调研方案
  • 防城港网站建设建个网站需要多少钱?
  • 网站里怎样做物流跟踪功能竞价排名推广
  • 网络文化有限公司网站建设策划书长沙搜索排名优化公司
  • 做一个普通网站多少钱seo博客网站
  • 建设网站怎么设置网站页面大小网上营销网站
  • 鹤壁做网站公司哪家好网络推广公司加盟
  • 如何下载网站模板文件在哪里腾讯云域名购买
  • 阜宁做网站互联网营销师证书是国家认可的吗
  • 做网站东莞选哪家公司好优化推广
  • 信息可视化网站时事新闻热点摘抄
  • 番禺网站建设番禺网络营销seo职位
  • 桐城网站设计网站开发流程的8个步骤
  • 如何识别一个网站是否做的好鄂州网站seo
  • 退役军人事务部网站建设seo网站排名后退
  • 制作闹钟网站腾讯企点qq
  • 吉祥物设计网站十大免费b2b网站
  • 外贸网站建设报价表的磁力搜索引擎
  • 想见你一个网站怎么做南宁网
  • 青岛做教育的网站搜索引擎营销推广方案
  • 临沂做网站推广的公司哪家好网页查询
  • 衡阳企业网站排名优化网络舆情监测平台
  • 做婚姻网站赚钱seo教程技术资源
  • dw课设做网站网站建设包括哪些内容
  • html5做网站属于网络营销的特点是