zoukankan      html  css  js  c++  java
  • MySQL中写操作

     具体到操作流程:

    当执行某个写操作的 SQL 时,引擎将这行数据更新到内存的同时把对应的操作记录到 redo log 里面,然后处于 prepare 状态。并把完成信息告知给执行器。

    执行器生成对应操作的 binlog,并把 binlog 写入磁盘里。然后调用引擎的提交事务接口,变更 redo log 状态为 commit。

    ===》》》《《《《====

    重做日志(redo log

    位于存储引擎层的 redo log,它是用来记录在"数据页做了什么修改"的物理日志文件。

    WAL 技术

    提到 redo log,WAL 技术必然是绕不过去的,全称是 Write-Ahead Logging。也就是在同步磁盘前先写日志,然后系统再根据一定的策略将日志里的记录同步到磁盘里

    二进制日志(binlog)

    位于服务层的二进制日志文件 binlog

    扮演的角色是存储逻辑日志的,所谓的逻辑日志就是指修改了什么,都会记录其中。

    回滚日志(undo log)

    在进行数据修改时,同时记录 undo log,即同时记录相反操作的逻辑日志。你可以理解为操作 update 的时候,写一条对应相反的 update 记录,操作 delete 的时候,写一条对应的 insert 记录。

  • 相关阅读:
    Java操作Redis的方式
    Redis综述
    KafKa综述
    NuxtJS项目——状态树
    NuxtJS项目——开发工具
    NuxtJS项目——命令和部署
    NuxtJS项目——模块
    NuxtJS项目——插件
    NuxtJS项目——资源文件
    Sampling Matrix
  • 原文地址:https://www.cnblogs.com/KL2016/p/15070881.html
Copyright © 2011-2022 走看看