IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL日志简述(redo log、undo log、bin log) -> 正文阅读

[大数据]MySQL日志简述(redo log、undo log、bin log)

一、前言

redo log、undo log、bin log是MySQL中的三大核心日志,其中redo log、undo log是innoDB引擎层的日志,bin log是server层的日志。理解这三种日志,对于帮助我们理解事务有十分重要的意义。

二、redo log

作用:确保事务的持久性,记录数据修改之后的值,当数据写入到内存,但还没写到磁盘时,服务器出现故障,重启MySQL后,会从redo log恢复发生故障之前的数据,叫做crash-safe

提升性能:更新数据时,为了减少磁盘IO次数,每次操作都会先将数据写入到内存中,再根据策略将redo log中的数据刷到磁盘中去。

刷盘策略:通过innodb_flush_log_at_trx_commit 值来控制刷盘策略

  • 值为0时,每次提交事务不进行刷盘操作,而是每秒执行一次将数据刷新写入到磁盘中,在事务提交后,Log Buffer不会直接将数据写入到OS Buffer,而是每秒写入一次数据到OS Buffer并调用fsync()写入磁盘,所以MySQL服务挂了或服务器宕机时有可能导致1秒钟数据丢失,性能最高
  • 值为1时,每次提交事务都会将Log Buffer写入OS Buffer再调用fsync()写入磁盘。即使过程中MySQL服务挂了或服务器宕机,也不会丢失数据,但性能最差,也是默认的策略
  • 值为2时,每次提交事务都会写入到OS Buffer中,再每秒调用fsync()写入磁盘,只有服务器宕机才有可能丢失一秒钟数据,性能居中,但比起值为0时的策略要安全很多

OS buffer:操作系统的缓存

log buffer:MySQL的缓存

通过show variables like '%innodb_log%' ;可以查看redo log的文件大小等信息

二、undo log

作用:确保事务的原子性,同时可以实现多版本并发控制(MVCC)

内容:undo log是逻辑日志,会通过逻辑将数据恢复到事务开始之前的的状态

产生时间:在事务开始之前就会产生

存储位置:默认存储在共享空间中,可通过以下语法查看

show global variables like "innodb_data_file_path%";

三、bin log

作用:可以恢复数据库,可以帮助实现MySQL主从复制

bin log与redo log的区别

  1. bin log是server层面的,redo log是innoDB独有的
  2. bin log是逻辑日志,redo log是物理日志
  3. redo log的恢复效率比bin log快
  4. redo log是循环写的,有空间限制,redo log是追加的

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 12:18:09  更:2022-04-04 12:21:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:58:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码