zoukankan      html  css  js  c++  java
  • MySQL重做日志

    用个酒店掌柜记账的例子说明 redo log的作用。
    酒店掌柜有一个粉板,专门用来记录客人的赊账记录。如果赊账的人不多,那么他可以把顾客名和账目写在板上。但如果赊账的人多了,粉板总会有记不下的时候,这个时候掌柜一定还有一个专门记录赊账的账本
    如果有人要赊账或者还账的话,掌柜一般有两种做法:
    直接翻开账本记录(直接写磁盘)
    先记在粉板(redo log)上,等空闲时再记录到账本(磁盘)上
    当生意火爆时,不停有人来要赊账或者还账(更新操作),如果掌柜还是用第一种做法,由于记到账本上需要查找记录(随机读)那就会出现大量的人(更新操作)在等待,会影响工作(阻塞)。
    第二种做法,先记在粉板上,空闲时再写回账本。因为记粉板的速度是很快的,就能大量处理赊账或者还账,当掌柜(MySQL)没那么忙的时候,就把粉板上的内容记到账本上。但如果粉板(redo log)写满了那这时候掌柜(MySQL)就要停下工作,先去把粉板(redo log)的内容写回账本(磁盘)。
    两种做法的区别是:+
    第一种是要找到记录后更新,这里涉及随时读,而随时读是很费时间的
    第二种是记在日志上,这是顺序写的,而顺序写是很快的

  • 相关阅读:
    js函数在线手册
    Chrome 控制台新玩法-console显示图片以及为文字加样式
    HTML5 <details> 标签
    CSS 魔法系列:纯 CSS 绘制三角形(各种角度)
    CSS与HTML5响应式图片
    webkit内核浏览器的CSS写法
    Java学习笔记38(字符流)
    Java学习笔记37(字节流)
    Java学习笔记36(File类)
    Java学习笔记35(异常)
  • 原文地址:https://www.cnblogs.com/Ran0707-0721/p/14094484.html
Copyright © 2011-2022 走看看