首页 > 其他分享 >执行一条update会发生什么?

执行一条update会发生什么?

时间:2023-05-25 19:23:37浏览次数:34  
标签:bin 执行器 一条 log update innodb 日志 执行 redo

1、和查询语句一样也会走一遍连接器、解析器、预处理器、优化器、执行器

 

2、执行器在更新数据前,会先查看buffer pool中是否存在要更新的数据,如果不存在则从磁盘加载到buffer pool,存在则进行修改

 

3、innodb把旧值写入undo log

 

4、innodb把新值写到buffer pool

 

5、innodb写redo log并标记为prepare

 

6、执行器写bin log

 

7、innodb写redo log并标记为commit,这样就完成了两阶段提交,事务提交后,redo log 和bin log都要持久化到磁盘

 

三大日志:

undo log : 回滚日志,在异常发生时,对已经执行的操作进行回滚,保证事物的原子性

redo log: 重做日志,是innodb独有的,一旦mysql宕机了,可以使用redo log恢复数据,保证事物的持久性

bin log : 归档日志,是逻辑日志,bin log在数据库备份时可以同步数据,保证事物的一致性

 

标签:bin,执行器,一条,log,update,innodb,日志,执行,redo
From: https://www.cnblogs.com/coooookie/p/17432622.html

相关文章

  • LightDB-A 支持oracle执行计划下推
    LightDB-A支持创建外部表,外部数据源可以是oracle,postgresql等.在LightDB-A创建oracleserver和用户映射:CREATESERVERoradbFOREIGNDATAWRAPPERoracle_fdwOPTIONS(dbserver'//x.x.x.x:1521/test');GRANTUSAGEONFOREIGNSERVERoradbTOfj;CREATEUSERMAPPING......
  • Windows Server 2022 中文版、英文版下载 (updated May 2023)
    WindowsServer2022正式版,2023年5月更新请访问原文链接:https://sysin.org/blog/windows-server-2022/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org早期直观体验版本21H2,根据名称预计今年秋季发布正式版(已经发布)设置和控制面板仍然混乱,麦德龙风格和经典风......
  • Windows 11 22H2 中文版、英文版 (x64、ARM64) 下载 (updated May 2023)
    Windows11,version22H2,2023年5月更新请访问原文链接:https://sysin.org/blog/windows-11/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org全新推出Windows11全新Windows体验,让您与热爱的人和事物离得更近。获得全新视角Windows11提供一个让人平静而富......
  • springmvc执行流程和视图解析器
    代码在course1中1. springmvc请求的处理流程  9 1)发起some.do 2)tomcat(web.xml--url-pattern知道 *.do的请求给DispatcherServlet) 3)DispatcherServlet(根据springmvc.xml配置知道 some.do---doSome()) 4)DispatcherServlet把some.do转发个MyController.doSome()方法 5)框架......
  • openEuler root账户执行文件但是permission denied
    查看是否有可执行权限x,查看是否有rwx的x权限:ls-lfilename 没有就加上:chmod+xfilename ......
  • windows下将Pikafish编译为安卓可执行文件
    下载AndroidNDKhttps://developer.android.com/ndk/downloads?hl=zh-cn下载Pikafish源码https://github.com/official-pikafish/Pikafish编译在Pikafish的src目录下创建如下bat文件setclang=D:\android-ndk-r25c\toolchains\llvm\prebuilt\windows-x86_64\bin\aar......
  • fastadmin 只允许在开发环境下执行命令
      解决1、设置文件[…\fastadmin\application\config.php]中的app_debug为true即可。//应用调试模式//'app_debug'=>Env::get('app.debug',false),//在线命令提示:只允许在开发环境下执行命令'app_debug'=>Env::get(&......
  • 【踩坑记录】autojs使用while(1)导致broadcast无法正常执行
    autojs中的死循环操作最好使用setInterval而不是,while(1)。 while(1)会导致其他语句无法执行,这里面包括了信号相关的,比如今天踩得坑: 用events.broadcast.emit发出信号后,相应的on语句无法正常执行,后来才发现原来是为了一个用while(1)来执行死循环导致整个线程全部死在了这里,......
  • 【老王读SpringMVC-5】Controller method 是如何执行的?
    通过前面对Controllermethod参数绑定的分析,我们知道,被@RequestMapping标记handlermethod的执行是通过调用RequestMappingHandlerAdapter#handle()。RequestMappingHandlerAdapter#handle()具体的调用过程如下:参数解析、handlermethod的执行和对返回值的处理,最终......
  • Pytest - 断言判断(2) - 断言失败继续执行(pytest-assume)
    断言失败继续执行前言一般情况下我们在使用assert断言失败后,后面的代码就不会继续运行;如果我们想要在断言失败后想要继续运行代码,就不能使用assert进行验证;一个可以允许pytest测试用例中,执行多个失败的断言的插件:多重断言pytest-assume安装pipinstallpytest......