oldguo实战师徒班 mysql实战笔记
日志系统:一条SQL更新语句是如何执行的?
已报名oldguo的课,需要底下评论 重要的日志模块:redo log
InnoDB 的 redo log 是固定大小的
从头开始写,写到末尾就又回到开头循环写
重要的日志模块:binlog
redo log 是 InnoDB 引擎特有的日志,而 Server 层也有自己的日志,称为 binlog(归档日志)
redo log 与binlog
- redo log 是 InnoDB 引擎特有的;binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使用。
- redo log 是物理日志,记录的是“在某个数据页上做了什么修改”;binlog 是逻辑日志,记录的是这个语句的原始逻辑,比如“给 ID=2 这一行的 c 字段加 1 ”。
- redo log 是循环写的,空间固定会用完;binlog 是可以追加写入的。“追加写”是指 binlog 文件写到一定大小后会切换到下一个,并不会覆盖以前的日志。
执行流程
update T set c=c+1 where ID=2;
- 执行器先找引擎取 ID=2 这一行。ID 是主键,引擎直接用树搜索找到这一行。如果 ID=2 这一行所在的数据页本来就在内存中,就直接返回给执行器;否则,需要先从磁盘读入内存,然后再返回。
- 执行器拿到引擎给的行数据,把这个值加上 1,比如原来是 N,现在就是 N+1,得到新的一行数据,再调用引擎接口写入这行新数据。
- 引擎将这行新数据更新到内存中,同时将这个更新操作记录到 redo log 里面,此时 redo log 处于 prepare 状态。然后告知执行器执行完成了,随时可以提交事务。
- 执行器生成这个操作的 binlog,并把 binlog 写入磁盘。
- 执行器调用引擎的提交事务接口,引擎把刚刚写入的 redo log 改成提交(commit)状态,更新完成
oldguo实战师徒班 mysql实战笔记相关推荐
- MySQL实战45讲学习笔记
文章目录 MySQL实战45讲-学习笔记 01 基础架构:一条SQL查询语句是如何执行的? mysql逻辑架构 连接器 查询缓存 分析器 优化器 执行器 02 日志系统:一条SQL更新语句如何执行 r ...
- 拉勾启源老师mysql讲义,【拉勾教育数据分析实战训练营】--Tableau学习笔记-重点回顾1...
[拉勾教育数据分析实战训练营]--Tableau学习笔记-重点回顾1 [拉勾教育数据分析实战训练营]--Tableau学习笔记-重点回顾1 以下是我搜罗的一些官方优秀case分享: 1.https:/ ...
- 丁奇的MySQL实战45讲 学习笔记[链接]
收录一下, 方便自己查阅 <MySQL实战45讲>1~15讲 -丁奇,学习笔记 <MySQL实战45讲>16~30讲 -丁奇,学习笔记 <MySQL实战45讲>31 ...
- 《MySQL实战45讲》——学习笔记04-05 “深入浅出索引、最左前缀原则、索引下推优化“
04 | 深入浅出索引(上) 1. 什么是索引? 索引的出现其实就是为了提高数据查询的效率,就像书的目录一样,书有500页,每页存的都是书的内容,目录可能只有5页,只存了页码:通过目录能快速找到某个主 ...
- 《MySQL实战45讲》——学习笔记12 “InnoDB刷脏页的控制策略“
本篇介绍MYSQL InnoDB的WAL机制带来的小问题--利用WAL技术,数据库将随机写转换成了顺序写,大大提升了数据库的性能,但也带来了内存脏页的问题: 脏页会被后台线程自动flush,也会由于数 ...
- 《MySQL实战45讲》——学习笔记01-03 “MySQL基本架构、日志系统、事务隔离“
最近有新闻说"丁奇"炒股失败欠债,赶紧去极客时间买了他的<MySQL 实战 45 讲>以防下架,顺带重新系统的复习下MYSQL相关知识,记录下学习笔记: 本篇介绍: M ...
- MySQL 实战45讲--笔记
文章目录 MySQL 实战45讲-->笔记 开篇词 基础篇(8讲) 01 | 基础架构:一条SQL查询语句是如何执行的? 1.1 SQL 语句在 MySQL 的各个功能模块中的执行过程. 依次看 ...
- 《姜承尧的MySQL实战宝典》学习笔记
<姜承尧的MySQL实战宝典>学习笔记 1 表结构设计 1.1 数字类型 1.1.1 整形类型 1.1.2 浮点类型和高精度型 1.1.3 实战--整型类型与自增设计 1.1.4 实战-- ...
- 从零开始带你成为MySQL实战优化高手学习笔记(一)
重复是有必要的. 很多新入职的小朋友可能和现在的我一样,对数据库的了解仅仅停留在建库建表增删改查这些操作,日常工作也都是用封装好的代码,别说底层原理了,数据库和系统之间是如何工作都不是很懂. 长此以往 ...
最新文章
- 华为怎么改输入法皮肤_搜狗输入法皮肤挑花眼?这次皮肤效果也能划着看了
- 科技公司狂挖高校AI学者:涸泽而渔还是产学双赢
- 软件设计原则——合成复用原则
- javascript时间格式format函数,js日期格式化函数
- AtCoder Beginner Contest 215 F - Dist Max 2
- 最简单的方式实现QML无边框窗口边缘拖动调整大小
- Socket编程实现简易聊天室
- npm 删除依赖包_npm 和 yarn 你选哪个?
- SpringBoot连接Redis服务出现DENIED Redis is running in protected mode because protected mode is enabled
- HttpClient中post请求http、https示例
- mysql主主双机互备(三)
- 项目文件3 项目范围说明书、项目团队派工单、质量控制测量结果、质量测量指标、质量报告、需求文件、需求跟踪矩阵、 资源分解结构
- LDA模型,主题聚类模型
- 《加速器理论(第二版)》读书笔记
- Activiti 工作流引擎 详解
- 把window的鼠标指针改成Mac的
- 知网导出外文参考文献格式和下载文章(2019.5)
- MySQL数据库实现双向自动同步
- android发送http post请求函数带参数带返回数据 静态类 源码
- 特征选择之方差选择法VarianceThreshold
热门文章
- PTA作业15:数列求和
- linux点滴yan
- Direct3D 11 Devices之 Introduction to a Device in Direct3D 11
- 科学计算机自动显示小数,卡西欧计算器FX-82MS怎么能让计算器永久显示小数计数而不是科学技术法啊?好烦啊,每次都是显示科学技术法,我试过SHI...
- windows安装nodejs,在cmd中输入npm提示非内部命令
- 反脆弱 做一个内心强大的人_需要强大的软件? 使它脆弱
- Virtual Villagers 攻略
- 非CS专业的人如何学才能够像CS专业一样
- c语言写51单片机八路抢答器,基于AT89C51单片机的八路抢答器设计方案.doc
- mblock机器人指令_mBot机器人如何通过蓝牙实现与PC端mBlock的无线通信?