当前位置: 首页 > news >正文

Mysql高级部分总结(二)

MySQL的内部日志

binlog记载的是update/delete/insert这样的SQL语句,而redo log记载的是物理修改的内容(xxxx页修改了xxx)。
binlog无论MySQL用什么引擎,都会有,而redo log是MySQL的InnoDB引擎所产生的。
redo log事务开始的时候,就开始记录每次的变更信息,而binlog是在事务提交的时候才记录。

redo log的作用是为持久化而生的。redo log的存在为了:当我们修改的时候,写完内存了,但数据还没真正写到磁盘的时候。此时我们的数据库挂了,我们可以根据redo log来对数据进行恢复。因为redo log是顺序IO,所以写入的速度很快,并且redo log记载的是物理变化(xxxx页做了xxx修改),文件的体积很小,恢复速度很快。
redo log不会存储着历史所有数据的变更,文件的内容会被覆盖的。

binlog的作用是复制和恢复。
主从服务器需要保持数据的一致性,通过binlog来同步数据。
如果整个数据库的数据都被删除了,binlog存储着所有的数据变更情况,那么可以通过binlog来对数据进行恢复。

先写redo log,再写binlog。
如果写redo log失败了,那我们就认为这次事务有问题,回滚,不再写binlog。
如果写redo log成功了,写binlog,写binlog写一半了,但失败了怎么办?我们还是会对这次的事务回滚,将无效的binlog给删除(因为binlog会影响从库的数据,所以需要做删除操作)

http://www.lryc.cn/news/509243.html

相关文章:

  • 纠正一下网络管理
  • homebrew,gem,cocoapod 换源,以及安装依赖
  • Java字符串的|分隔符转List实现方案
  • Kafka可视化工具 Offset Explorer (以前叫Kafka Tool)
  • DeepWalk 原理详解
  • GitLab安装|备份数据|迁移数据及使用教程
  • 嵌入式linux驱动框架 I2C系统驱动程序模型分析
  • 深度学习实验十七 优化算法比较
  • 一个双非选手的秋招总结
  • 如何提高永磁电动机的节电效果
  • 在一个服务器上抓取 Docker 镜像并在另一个服务器上运行
  • 开源轮子 - Logback 和 Slf4j
  • 内部知识库的未来展望:技术融合与用户体验的双重升级
  • 【Linux系列】Shell 命令:`echo ““ > img.sh`及其应用
  • 【RAG实战】语言模型基础
  • 【MySQL】7.0 入门学习(七)——MySQL基本指令:帮助、清除输入、查询等
  • 我的 2024 年终总结
  • STM32CUBEMX+STM32H743ZIT6+IAP+UART在线升级初始化和代码解析
  • 半连接转内连接 | OceanBase SQL 查询改写
  • Git使用经历
  • 永磁同步电机控制算法-自适应带宽LADRC转速控制器
  • 基于springboot+vue实现的博物馆游客预约系统 (源码+L文+ppt)4-127
  • LeetCode 1705.吃苹果的最大数目:贪心(优先队列) - 清晰题解
  • vim多窗格
  • ubuntu paddle ocr 部署bug问题解决
  • OpenFeign快速入门 示例:黑马商城
  • 【C++】ceil 和 floor 函数的实现与分析
  • zabbix监控山石系列Hillstone配置模版(适用于zabbix6及以上)
  • 在瑞芯微RK3588平台上使用RKNN部署YOLOv8Pose模型的C++实战指南
  • CTFHub disable_functions通关