【宋红康 MySQL数据库 】【高级篇】【17】MySQL事务日志:redo、undo
持续学习&持续更新中…
学习态度:守破离
【宋红康 MySQL数据库 】【高级篇】【17】MySQL事务日志
- 概述
- redo日志
- 为什么需要redo日志
- redo日志的好处、特点
- redo的组成
- redo的整体流程
- redo log的刷盘策略
- 不同刷盘策略演示
- 写入redo log buffer过程
- 补充概念:Mini-Transaction
- redo日志写入log buffer
- redo log block的结构图
- redo log file
- 相关参数设置
- 日志文件组
- checkpoint
- redo log 小结
- undo日志
- 如何理解undo日志
- undo日志的作用
- undo的存储结构
- undo的类型
- undo log 的生命周期
- 简要生成过程
- 详细生成过程
- undo log是如何回滚的
- undo log的删除
- undo log 小结
- 参考
概述
redo日志
为什么需要redo日志
redo日志的好处、特点
redo的组成
redo的整体流程
redo log的刷盘策略
这里讨论的是
redo log buffer ——> redo log file
的过程
不同刷盘策略演示
USE atguigudb3;CREATE TABLE test_load(
a INT,
b CHAR(80)
)ENGINE=INNODB;#创建存储过程,用于向test_load中添加数据
DELIMITER//
CREATE PROCEDURE p_load(COUNT INT UNSIGNED)
BEGIN
DECLARE s INT UNSIGNED DEFAULT 1;
DECLARE c CHAR(80)DEFAULT REPEAT('a',80);
WHILE s<=COUNT DO
INSERT INTO test_load SELECT NULL,c;
COMMIT;
SET s=s+1;
END WHILE;
END //
DELIMITER;#测试1:
#设置并查看:innodb_flush_log_at_trx_commitSHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit';#set GLOBAL innodb_flush_log_at_trx_commit = 1;#调用存储过程
CALL p_load(30000); #1min 28sec#测试2:
TRUNCATE TABLE test_load;SELECT COUNT(*) FROM test_load;SET GLOBAL innodb_flush_log_at_trx_commit = 0;SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit';#调用存储过程
CALL p_load(30000); #37.945 sec#测试3:
TRUNCATE TABLE test_load;SELECT COUNT(*) FROM test_load;SET GLOBAL innodb_flush_log_at_trx_commit = 2;SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit';#调用存储过程
CALL p_load(30000); #45.173 sec
写入redo log buffer过程
补充概念:Mini-Transaction
redo日志写入log buffer
redo log block的结构图
redo log file
相关参数设置
日志文件组
checkpoint
redo log 小结
undo日志
这里的更新是指:增、删、改
如何理解undo日志
undo日志的作用
undo的存储结构
undo的类型
undo log 的生命周期
简要生成过程
详细生成过程
undo log是如何回滚的
undo log的删除
undo log 小结
参考
尚硅谷宋红康: MySQL数据库(入门到高级,菜鸟到大牛).
本文完,感谢您的关注支持!
【宋红康 MySQL数据库 】【高级篇】【17】MySQL事务日志:redo、undo相关推荐
- MySQL数据库高级篇教程 B站康师傅笔记(持续更新)
第二部分 MySQL高级特性篇 第01章 Linux下MySQL的安装与使用 1. 安装前说明 1.1 查看是否安装过MySQL 如果你是用rpm安装, 检查一下RPM PACKAGE: rpm -q ...
- MySQL数据库 --- 高级篇
一.存储引擎 1.1.MySQL体系结构 1.1.1.连接层 最上层是一些客户端和链接服务,包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信.主要完成一些类似于连接处 ...
- Mysql数据库——高级用法(视图、事务、索引、自连接、用户管理)
视图 视图是对若干张基本表的引用,一张虚表,只查询语句执行结果的字段类型和约束,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变),方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性. ...
- 【宋红康 MySQL数据库 】【高级篇】【03】MySQL的数据目录
持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][03]MySQL的数据目录 MySQL8的主要目录 数据文件的存放目录 命令存放目录 配置文件目录 数据库和 ...
- 【宋红康 MySQL数据库 】【高级篇】【07】MySQL的存储引擎
持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][07]MySQL的存储引擎 存储引擎 查看存储引擎 设置系统默认的存储引擎 设置表的存储引擎 引擎介绍 In ...
- 【宋红康 MySQL数据库 】【高级篇】【06】MySQL的逻辑架构
持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][06]MySQL的逻辑架构 逻辑架构剖析 服务器处理客户端请求 Connectors 第一层 连接层 第二层 ...
- 【宋红康 MySQL数据库 】【高级篇】【12】性能分析工具的使用
持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][12]性能分析工具的使用 数据库服务器的优化步骤 查看系统性能参数 统计SQL的查询成本:last_quer ...
- 【宋红康 MySQL数据库 】【高级篇】【16】事务基础知识
持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][16]事务基础知识 数据库事务概述 存储引擎支持情况 基本概念 事务的ACID特性 事务的状态 如何使用事务 ...
- 【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略
持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][15]数据库其它调优策略 数据库调优的措施 调优的目标 如何定位调优问题 调优的维度和步骤 优化MySQL服 ...
最新文章
- ML Pipelines管道
- 第二十九课.回声状态网络ESN
- dnscat使用——整体感觉这个工具不完善,失败率很高,传文件时候没有完整性校验,我自己测试时通过域名转发失败,可能是其特征过于明显导致...
- [转] 【领导必读】唐僧为什么可以领导孙悟空
- 计算机考研保护一志愿,考研良心大学,保护一志愿的考研名校!
- 初识Notification
- sql取最大值的那一行_SQL高级功能
- 人类(行为)动力学(1)——初步了解
- python实列pdf下载_Python程序实例解析.pdf
- 供给侧结构性改革语境应对世界市场 国稻种芯百团计划行动
- Laravel SQL查询中first, pluck与lists方法
- scrapy 去重 dont_filter=False
- P2P网贷平台资金存管深度介绍
- c语言求标准体重答案,c语言编写一个标准身高体重自测程序
- 机器学习分享——反向传播算法推导
- xe6 动态元素数量
- 电子计算机工作最主要特征,电子计算机最重要的工作特征是( )
- CH34X系列与CH91XX系列等USB转串口方案选型对比
- keil5识别不了记事本改的.c文件解决办法
- 1199. 保留整数