zoukankan      html  css  js  c++  java
  • MySQL学习(九)小结

    redo-log 和 bin-log 是如何联系起来的?

    update 语句在更新的时候先更新内存后,写 redo-log 然后 bin-log ,其中后面一步是使用了两阶段提交, 也就是每一个更新都会写 bin-log ,要是发生异常崩溃的时候,

    回答:它们有一个共同的数据字段,叫XID。崩溃恢复的时候,会按顺序扫描redo log:

    • 如果碰到既有prepare、又有commit的redo log,就直接提交;
    • 如果碰到只有parepare、而没有commit的redo log,就拿着XID去binlog找对应的事务。

    redo log 和 bin log

    ### redo log 记录的是数据的物理变化,就是某个数据行从 X1 变到 X2 的过程。 

    ### bin log 记录的是数据的逻辑逻辑变化,可以类比于就是执行像SQL一样的逻辑。

    为什么 MySQL 已经有了 bin-log 还需要 redo-log ,是不是多此一举?

    一个原因是历史原因,InnoDB 引擎是以插件的形式的加入到 MySQL ,而且 bin log 是属于 server 层的,其他引擎也都可以使用,但是 redo-log 则是 InnoDB 引擎特有的
    12。 另外一个原因就是 redo-log 主要的功能是事务持久化支持崩溃恢复,而bin log 只能作数据归档,那你肯定会说为bin log 增加崩溃恢复的功能就行了嘛,是的,那样就会重新设计出一个 redo log 出来,于是 redo log 变得不可取代。

    参考资料

    • http://scholar.hedasudi.com/ (谷歌搜索)
    • https://cloud.tencent.com/developer/article/1417482 (redo log)
    • https://www.one-tab.com/page/86HwR8klRGaOmeH3vUkdCw
  • 相关阅读:
    NS网络仿真,小白起步版,双节点之间的模拟仿真(基于UDP和CBR流)
    Linux学习,ACL权限管理
    SQL中的注释语句
    C#连接SQL Server数据库小贴士
    C#重写ToString
    C#控制台应用程序之选课系统
    浅谈C、C++及其区别、兼容与不兼容
    C++之客户消费积分管理系统
    A*算法
    HTML标签列表总览
  • 原文地址:https://www.cnblogs.com/Benjious/p/12341164.html
Copyright © 2011-2022 走看看