声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。

UPDATE t SET name = jack WHERE id = 1这是一个简单的更新语句,它会如同查询语句一样,经过流程,连接器,分析器,优化器,执行器。它首先会查看内存中是否有 id为1的数据 如果有的话,那么就会更新返回。更新操作会清除该条记录的缓存

1.WAL 技术

WAL他的全称 WRITE-Ahead Logging,他的特点就是 先记录日志,再写磁盘。

2.日志模块

MYSQL的日志分为两个方面。
server层: binlog日志(归档日志)binlog 是逻辑日志,记录的是这个语句的原始逻辑,比如“给 ID=2 这一行的 c 字段加 1 ”。
引擎层: redo log 是 InnoDB 引擎特有的,redo log 是物理日志,记录的是“在某个数据页上做了什么修改”

2.1为什么要两份日志呢?

InnoDB 是另一个公司以插件形式引入 MySQL 的,既然只依靠 binlog 是没有 crash-safe 能力的,所以 InnoDB 使用另外一套日志系统——也就是 redo log 来实现 crash-safe 能力。

3.如何实现 crash-safe

crash-safe 就是 即使数据库发生异常重启,提交过的记录都不会丢失。具体实现是通过 redo-log的两段提交协议。记录日志的过程是:
1.记录redo log 处于 prepare状态
2.记录binlog 写入磁盘
3.redo改成 commit状态,更新完成

1 prepare阶段 2 写binlog 3 commit
当在2之前崩溃时
重启恢复:后发现没有commit,回滚。备份恢复:没有binlog 。
一致
当在3之前崩溃
重启恢复:虽没有commit,但满足prepare和binlog完整,所以重启后会自动commit。备份:有binlog. 一致

MYSQL学习笔记之简单的UPDATE语句(二)相关推荐

  1. mysql 学习笔记04 insert与update语句

    1.插入数据 注意事项: 字符和日期类型, 要用 单引号 括起来 insert into (), (), () 例如: insert into goods values(1, 'abc', 2.2), ...

  2. MySql学习笔记——压测工具slap(二十九)

    自带的,本机地址C:\Program Files\MySQL\MySQL Server 5.7\bin 直接在cmd运行即可 基础语法:mysqlslap xxxx 典型的测试选项如下 自动生成sql ...

  3. mysql select语句详解_mysql学习笔记之完整的select语句用法实例详解

    本文实例讲述了mysql学习笔记之完整的select语句用法.分享给大家供大家参考,具体如下: 本文内容: 完整语法 去重选项 字段别名 数据源 where group by having order ...

  4. mysql数据库select语句用法_mysql学习笔记之完整的select语句用法实例详解

    本文实例讲述了mysql学习笔记之完整的select语句用法.分享给大家供大家参考,具体如下: 本文内容: 完整语法 去重选项 字段别名 数据源 where group by having order ...

  5. 小白终是踏上了这条不归路----小文的mysql学习笔记目录

    ** 小文的学习笔记正在每日连载当中 为了方便观察,小文在练习的时候用的是图形化工具SQLyog然后用共用到两张表,employees表和girls表. 如果有需要该软件和上述两张表的兄弟可以 关注 ...

  6. Mysql学习笔记(基础)基础sql语句详细记录

    数据库学习(基础) // 个人网课学习记录,如果有违规等问题,请联系我删除~ mysql下载安装( 解压版安装配置 下载版安装配置 ) 需求分析:使用cmd命令来创建一个数据库,并对数据库中得一张分类 ...

  7. 零基础学习数据库SQL教程(一)(简单的SELECT语句 简单的INSERT语句 简单的UPDATE语句 简单的DELETE语句)

    写在前面的话:本文章内容是自己在LintCode网站SQL教程学习过程中做的学习总结,以便自己复习和大家学习,如果去刷此网站的题,也可以把此文作为参考答案来使用.例题的答案是本人所写,并且已经运行成功 ...

  8. Mysql学习笔记(六)增删改查

    原文:Mysql学习笔记(六)增删改查 PS:数据库最基本的操作就是增删改查了... 学习内容: 数据库的增删改查 1.增...其实就是向数据库中插入数据.. 插入语句 insert into tab ...

  9. MySQL学习笔记-基础篇1

    MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...

最新文章

  1. linux 内核 file_operations结构体各项解析
  2. Kibana远程代码执行漏洞攻击方法和漏洞原理分析
  3. CSV出力ボタンラッパー(asp.net)[イベントの作り方に役立つ]
  4. 如何扩展开发团队(转)
  5. YL杯超级篮球赛(jzoj 1325)
  6. 平衡二叉树AVL插入
  7. mysql-installer-community-5.5.29.0.msi 下载
  8. 2017级计科新生游戏大作业制作讲解
  9. ERP源码 跨境电商ERP源码 Java电商ERP源码
  10. 数据结构课程设计——学生成绩查询与分析系统(简单详细版,含讲解)
  11. 使用 Bitmap Style Designer 为FMX修改已有样式
  12. Hive指定位置增加字段及解决columns have types incompatible with the existing columns in their respective positio
  13. 欧拉函数为什么是积性函数
  14. 小游戏——满天小星星
  15. opencv保存视频编码方式
  16. 阿里云 远程桌面 登录
  17. 【目标检测】小目标检测问题及解决方法
  18. easyexcel 异常:java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/filemagic
  19. 调整oracle scn,调高SCN的方法
  20. 人工智能发展的三起两落

热门文章

  1. oracle 12c安装过程中报错:[INS-32102]指定的Oracle主目录已存在
  2. 工业企业资产情况和主要财务指标
  3. ps3模拟器(rpcs3) v0.0.0.4 中文版
  4. 微信小程序滑动日历实现思路
  5. 从相机raw图像到日常看到的jpeg图像
  6. (摘要)100个伟大的商业理念:理念10:顾客心理分析
  7. 本周六的2017中国产品经理大会、又确定了一位重量级嘉宾!
  8. android+底部评论框,Android 之BottomsheetDialogFragment仿抖音评论底部弹出对话框效果(实例代码)...
  9. RT_thread的IIC设备学习笔记
  10. 一图看懂 RTT 设备层次