update语句如何执行?

  • 一、流程分析
  • 二、重要的日志模块
    • 1、redo log
    • 2、binlog
    • 3、两阶段提交
  • 三、小结

一、流程分析

与查询流程不一样的是,更新流程涉及,两个重要的日志模块,redo log(重做日志)和 binlog(归档日志)。

二、重要的日志模块

1、redo log

举例:
酒店掌柜有一个粉板,专门用来记录客人的赊账记录。如果赊账的人不多,那么他可以把顾客名和账目写在板上。但如果赊账的人多了,粉板总会有记不下的时候,这个时候掌柜一定还有一个专门记录赊账的账本。
如果有人要赊账或者还账的,掌柜进行如下操作:
1、一种做法直接把账本翻出来,把这次赊的帐添加或者删除
2、先用粉板记录下来,等打烊了,在把账本翻出来核算。

同样mysql也有这样的问题,每一次更新操作,都需要写进磁盘,磁盘也要找到那个记录修改,整个过程IO成本很高,所以用酒店掌柜的方法,模拟实现mysql思路。
粉笔配置账本过程,就是mysql中WAL技术,Write-ahead-logging,它的关键点,先写日志,在写磁盘,也就是先写粉板,等不忙的时候,在写账本。

如果赊账不多,可以等到打烊在处理,如果特别多,已经写不下了,掌柜只能放下手头的活,把粉笔板的一部分数据更新到账本上,然后再把这些记录擦除调。

于此相似,Innodb也是一样的,redo log固定大小,每个文件1G

2、binlog

server层的日志为,binlog归档日志

非常重要:


redolog写成两个阶段来提交了。

3、两阶段提交

两阶段提交目的是:让两份日志逻辑一致。
如何回到半个月内任意一秒的状态,binlog会追加形式,备份系统一定保留最近半个月的所有binlog文件,而且定期做整库备份,一天或者一周。
问题:redolog 和 binlog提交不一致会导致什么问题?

三、小结


两阶段提交是跨系统维持数据逻辑一致性的常用方案。
binlog日志文件不能去除:
redolog只有Innodb有,别的引擎没有
另一个原因是:redolog是循环写的,不持久保存,binlog具有归档的功能,是redolog不具备的。
问题:

mysql基础架构(一条update语句如何执行)相关推荐

  1. 【mysql技术内幕1】mysql基础架构-一条SQL查询语句是如何执行的

    文章目录 1 一条SQL查询语句是如何执行的 2 mysql体系结构 3 InnoDB存储引擎 4 总结 1 一条SQL查询语句是如何执行的 ​ 通常我们使用数据库,都是将数据库看成一个整体,我们的应 ...

  2. MySQL中:一条update语句是怎样执行的

  3. 解析MySQL基础架构及一条SQL语句的执行流程和流转

    前言 本篇文章分析SQL语句在MySQL中的执行流程,包括SQL的查询在MySQL内部会怎么流转,SQL语句的更新是怎么完成的.在分析之前我们一起看看MySQL的基础架构,知道了 MySQL由那些组件 ...

  4. mysql update from 语句_MySQL高频面试题01期:一条update语句的生命历程

    在有关 MySQL 的面试时,是不是曾经有被问到过:一条 update 语句的生命历程是怎样的?今天就来聊聊这一面试题. 这篇文章通过这条语句进行讲解: update test set a=5 whe ...

  5. mysql 合并两个update_如何将多条update语句合并为一条

    需求: 如何将多条update语句合并为一条update语句: 如,update table1 set col='2012' where id='2014001' update table1 set  ...

  6. 很多条update语句mysql优化_MySQL批量update语句优化

    对MySQL中的表进行批量update的时候,如果每个记录用一个update语句,5000条记录的话,大概需要30秒钟.下面采用的case when方法可以把5000条update拼成一条: Upda ...

  7. mysql执行两条update语句

    执行两条update语句,没有join关联时 update dp_auto_group_price dagp ,dp_auto_group dag set dagp.is_pub = 0 ,dag.s ...

  8. MySQL 基础 (一)- 查询语句

    MySQL 基础入门 Day2 MySQL 基础 (一)- 查询语句 一.学习内容 1. 导入示例数据库 1.1 MySQL示例数据库结构 2. SQL是什么?MySQL是什么? 2.1 SQL 2. ...

  9. mysql 8.0 一条insert语句的具体执行流程分析(三)

    代码版本:mysql 8.0.22 编程语言:c++ && c++11 && c++14 && c++17 上一篇文章:mysql 8.0 一条inse ...

最新文章

  1. android四大组件 服务,Android四大组件之Service
  2. idea ctrl+shift+f快捷键失效
  3. OpenGL 纹理Textures
  4. python删掉txt第一列_Python3.5 处理文本txt,删除不需要的行方法
  5. MOS管的主要参数与重要特性
  6. 配置 Sybase数据源
  7. Linux版本tomcat下载及安装
  8. 信息学奥赛一本通C++语言——1051:分段函数
  9. cubemx lan8720a ping不通_行刑的刀越用越钝,为啥刽子手却从不去磨?原因让外国人想不通!...
  10. 代码英雄:波澜壮阔的操作系统之战(音频+长文)
  11. 达拉草201771010105《面向对象程序设计(java)》第十七周学习总结
  12. jquery页面跳转带cookie_python socket编程:实现redirect函数、cookie和session
  13. 学习计算机语言入门必看
  14. ESP8266和腾讯云的使用
  15. JAVA我的世界怎么做成就_我的世界:又一人解锁100%成就!这几项公认最难任务,你能完成吗...
  16. 什么是大小端?如何判断大小端
  17. CSS3之多列布局columns学习
  18. 螺旋无限延伸_八卦中的双螺旋结构,无限大∞符号隐含的秘密
  19. PaddleNLP实战:应用NeZha模型做微博情感6分类
  20. matlab奇异矩阵高效求逆,奇异矩阵求逆问题!!!

热门文章

  1. Java 枚举类型的应用
  2. Redis源码解析1:SDS--完美的C字符串替代
  3. FusionInsight环境的安装部署(FI的安装部署)
  4. Zebra BI for Excel
  5. 【PHP】PHP MySQL问题 phpinfo() 没有显示MySQL模块
  6. c51单片机c语言取反运算符,单片机c语言教程:C51运算符和表达式
  7. 如何修改默认的FTP帐号或密码
  8. OllyDBG破解入门教程[图文]教程
  9. CSAPP 3e Attack lab
  10. 项目设计:基于YOLO目标检测算法的安全帽/口罩/汽车/行人/交通标志...检测