MySQL中,redolog 和 binlog 有什么区别?

2023-12-05

MySQL中,redolog 和 binlog 有什么区别?

概述

redo log(重做日志)和 binlog(归档日志)都是 MySQL 的重要的日志,它们的区别如下:

  • redo log 是物理日志,记录的是“在某个数据页上做了什么修改”。
  • binlog 是逻辑日志,记录的是这个语句的原始逻辑,比如“给 ID=2 这一行的 c 字段加 1 ”。
  • redo log 是 InnoDB 引擎特有的;binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使用。
  • redo log 是循环写的,空间固定会用完;binlog 是可以追加写入的。“追加写”是指 binlog 文件写到一定大小后会切换到下一个,并不会覆盖以前的日志。

最开始 MySQL 里并没有 InnoDB 引擎,MySQL 自带的引擎是 MyISAM,但是 MyISAM 没有 crash-safe 的能力,binlog 日志只能用于归档。而 InnoDB 是另一个公司以插件形式引入 MySQL 的,既然只依靠 binlog 是没有 crash-safe 能力的,所以 InnoDB 使用另外一套日志系统,也就是 redo log 来实现 crash-safe 能力。

more

在MySQL中,redo log(重做日志)和binlog(二进制日志)是两种不同的日志类型,用于不同的目的。

  1. Redo Log(重做日志):

    • Redo log是InnoDB存储引擎特有的日志,用于保证事务的持久性和一致性。
    • Redo log记录了正在进行中的事务对数据所做的修改操作,包括插入、更新和删除操作。
    • Redo log以循环写入的方式记录,即当日志写满时,会从头开始覆盖之前的日志。
    • Redo log是物理日志,记录了数据页的物理修改,用于在数据库崩溃或意外关闭时进行恢复。
    • Redo log的写入是通过顺序IO操作,具有较低的开销,可以提高数据库的写入性能。
  2. Binlog(二进制日志):

    • Binlog是MySQL服务器的日志,记录了对数据库执行的所有更改操作,包括数据定义语言(DDL)和数据操作语言(DML)。
    • Binlog以追加写入的方式记录,即每次写入都追加到日志的末尾,不会覆盖之前的日志。
    • Binlog是逻辑日志,记录了对数据库的逻辑更改,如SQL语句的原始文本。
    • Binlog用于实现数据复制(主从复制)和数据恢复,可以将一个服务器上的操作复制到其他服务器上,实现数据的同步和备份。
    • Binlog的写入是通过随机IO操作,相对于redo log会有更高的开销,但可以提供更全面的日志信息。

在功能上,redo log主要用于保证事务的持久性和一致性,用于数据库的崩溃恢复,而binlog主要用于数据复制和恢复,用于实现主从复制和故障恢复。它们的使用场景和运行机制有所不同,但都是关键的日志组件,确保数据的可靠性和一致性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL中,redolog 和 binlog 有什么区别? 的相关文章

  • 将 mysql LONGTEXT 值转换为 VARCHAR 值?

    我有一个在用户 Facebook 墙上发布的功能 我发送到 facebook 的一件事是我从设置为 LONGTEXT 的 mysql 表中获取的一些文本 如果我将表设置为 LONGTEXT 则文本不会发送到 facebook 但如果我将表设
  • 如何在 MacOS 上卸载 Mysql Shell

    我错误地安装了 MySql Shellhttps dev mysql com doc mysql shell 8 0 en https dev mysql com doc mysql shell 8 0 en 在我的 MacBook Pro
  • 在 MySQL 中创建布尔列并将 false 作为默认值?

    我想在 MySQL 中创建一个表boolean默认值为的列false 但它默认接受 NULL 你必须指定0 意思是假 或1 意思是 true 作为默认值 这是一个例子 create table mytable mybool boolean
  • 错误代码 13,SELECT INTO OUTFILE 问题

    我试图了解使用 INTO OUTFILE 命令时不断遇到问题的原因 我总是收到这个错误 ERROR 1 HY000 Can t create write to file var www p1 txt Errcode 13 SELECT pa
  • 1:1 关系中的双向外键约束

    我正在使用 MySQL 数据库 在我的关系数据模型中 我有两个相互 1 1 关联的实体 在我的架构中 通过将 FK 字段放入两个表之一中来建立 1 1 关系 该字段与另一个表的 PK 相关 两个表都有 PK 并且都是自动递增的 BIGINT
  • 创建rest api url以连接mysql数据库

    我想学习如何创建一个rest api url 以便我可以使用该url获取信息并将信息发布到我的mysql数据库中 谷歌搜索了很多并阅读了各种文章 但没有找到任何精确的内容可以学习 所有内容均以 about api 开头 以已创建的其余 ur
  • 未知的表引擎“InnoDB”

    最近 我发现如果我有好的硬件 我可以最大限度地提高 mysql 的性能 由于我一直在使用 InnoDB 所以我在 my ini 中添加了额外的配置 以下是新添加的配置 innodb data file path ibdata1 10M au
  • 选择 mysql 枚举的 php 函数

    因此 我创建了一个函数 它将从数据库中的枚举字段中提取值
  • mysqldb接口错误

    我对 mysqldb python 的 mysql 模块 有一个非常奇怪的问题 我有一个文件 其中包含用于在表中插入记录的查询 如果我从文件中调用函数 它就可以正常工作 但是当尝试从另一个文件调用其中一个函数时 它会抛出一个 mysql e
  • 判断是否存在多对多记录组合

    这似乎是一个常见的任务 有一个简单的解决方案 但我在 StackOverflow 和 Google 上都空手而归 场景是这样的 我有两个共享多对多关系的表 A 和 B 因此 我有一个带有外键的表 A B 它映射 A 到 B 记录关系 标准的
  • 搜索多个表 (SQL)

    我需要能够有一个 SQL 查询来使用简单的搜索来搜索我的数据库 这是我的表格现在的样子 Table artists id name Table albums id artistID name Table songs id albumID n
  • 错误:SQLSTATE[HY000] [2002] 无法建立连接,因为目标计算机主动拒绝连接

    当我调试代码时突然发生错误 它有一系列关于数据库连接的错误 ERROR SQLSTATE HY000 2002 No connection could be made because the target machine actively
  • Laravel 中的 SQL 运算符是什么?

    我正在查看 Laravel 的源代码 发现了很多 Eloquent 的 SQL 运算符 我想知道其中一些是什么以及如何使用它们 不幸的是我没有找到任何文档 这是我找到的运营商vendor laravel framework src Illu
  • MySQL中如何重置表的自增列

    我有一张桌子 它的第一列sl是自动递增的 填充表格后 我删除了前两行 第一个条目有sl1 是否可以重置为1维持AI 我正在使用 PHP MyAdmin ALTER TABLE tablename AUTO INCREMENT 1
  • 保护存储过程

    我想知道是否有一种方法可以对某些用户隐藏存储过程的文本 我正在使用 MySQL 5 1 48 和 Net Connector 6 2 3 以及 Visual Studio 2008 SP1 我在 MySQL 中有两个用户 一个是 root
  • 导入mysql数据库出错

    我导出我的数据库并导出到另一台计算机使用 phpmyadmin 但它错误 静态分析 分析过程中发现2处错误 意想不到的角色 靠近位置 53 的 无法识别的语句类型 位置 1 的 div 附近 SQL查询 div class error h1
  • Navicat 中的 MySQL 视图 - 如何定义“主键”?

    当我在 Navicat 中定义视图时 经常会收到以下消息 xxx 没有主键 对此表的更新将使用以下伪语句完成 UPDATE xxx SET ModifiedFieldsAndValues WHERE AllFieldsAndOldValue
  • 插入MYSQL时自动初始化GETDATE()

    类似问题 https stackoverflow com questions 17700239 mysql column automaticly current time of insert w3schools 也许有用的链接 http w
  • MySQL Spatial CONTAINS 显示错误结果

    我的 MySQL 空间搜索有一个奇怪的行为 我在 GEOM 字段 葡萄牙边界 中创建了一个多边形 然后我尝试在内部找到一个点 发现没问题 下一次尝试是查找多边形外部的点 但查询仍返回 1 个找到的行 请帮忙 我做错了什么 为什么它会找到多边
  • phpMyAdmin - #1932 重新安装后表不存在(正在使用排序规则)

    我正在做我的论文 当我发现我的 XAMPP 服务器有一些错误日志时 所以我决定将我的 XAMPP 重新安装到更新的版本 我从 SO 中的一些线程中得 到了这个想法 我移动了我的mysql gt data文件夹并在我的新安装文件夹中再次恢复它

随机推荐

  • 如何有效进行主数据治理

    在企业信息化建设不断推进 逐渐进行数字化转型的今天 几乎所有的企业都卷入到数据及其处理 数据收集 存储 检索 传输 分析和表示 的浪潮中 数据已成为重要生产要素和无形资产 针对主数据的全生命周期管理迫在眉睫 对企业而言 分散管理的数据由于不
  • pngPackerGUI_V2.0是什么软件?png图片打包plist工具

    png图片打包plist工具 手把手教你使用pngPackerGUI V2 0 此软件是在 pngpacker V1 1 软件基础之后 开发的界面化操作软件 方便不太懂命令行的小白快捷上手使用 1 下载并解压缩软件 得到如下目录 双击打开
  • 【源码篇】基于SpringBoot+thymeleaf实现的蓝天幼儿园管理系统

    基于SpringBoot thymeleaf实现的蓝天幼儿园管理系统 文章目录 系统说明 技术选型 成果展示 账号地址及其他说明 系统说明 基于SpringBoot thymeleaf实现的蓝
  • GraphQL 实现原理,不要被表象骗了

    GraphQL 实现原理 及实例 GraphQL是一种用于API的查询语言和运行时环境 它提供了一种描述数据的方式 客户端可以根据需要进行精确地获取所需的数据 下面是GraphQL的实现原理 类型系统 Type System GraphQL
  • 检测下我的饺子皮擀的怎么样(圆度)

    各位老铁周末愉快 快乐的时间做充实的事 好久没有吃饺子了 俗话说好吃不过饺子 我个人觉得会包饺子不算本事 会擀饺子皮那才叫 今天我就来 手撕 一下饺子皮 和面 和面这一步 看似简单 实则不难 不过还是要掌握一些小技巧 小技巧一 和面的水里面
  • openCV在Visual Studio2019下的集成使用

    文章目录 下载OpenCV工具 选择合适库文件 使用visual studio创建空项目 测试运行 运行结果 下载OpenCV工具 官网下载实在太慢 还老实下不下来 下面从网上找到些别人分享的一些版本 从3 4到4 7 放到了网盘里 请按需
  • EasyV不止可视化|易知微带你打开可视化工具新大门!

    可视化工具的发展已经成为当今信息技术领域中的一股不可忽视的力量 如今 人们有了更多的数据和信息需要处理 因此需要一种更加高效 更加直观的手段来呈现这些信息 而可视化工具应运而生 这些工具包括多种类型的图表 地图 仪表板等 随着技术不断革新和
  • 博士论文答辩通过但需改论文【保姆教程】

    大家好 今天来聊聊博士论文答辩通过但需改论文 希望能给大家提供一点参考 以下是针对论文重复率高的情况 提供一些修改建议和技巧 博士论文答辩通过但需改论文 背景介绍 博士论文答辩是博士研究生学术生涯的重要环节 也是对其研究能力和学术水平的全面
  • zephir 实现PHP封装成C语言扩展文件so实现demo简单案例【菜鸟级教程】

    从github 安装 zephir phar 最新网址 https github com zephir lang zephir releases 将文件改名 zephir phar 改名为 zephir 放到 bin 目录下 查看是否安装
  • ERP软件定制开发对企业的优势|app小程序搭建

    ERP软件定制开发对企业的优势 app小程序搭建 随着科技的不断发展 企业管理也面临了更多的挑战 为了更好地适应市场需求和提高运营效率 越来越多的企业开始选择使用ERP软件进行管理 然而 市场上现成的ERP软件并不能完全满足企业的需求 因此
  • 2024年甘肃省职业院校技能大赛(中职教师组)网络安全竞赛样题卷③

    2024年甘肃省职业院校技能大赛 中职教师组 网络安全竞赛样题卷 2024年甘肃省职业院校技能大赛 中职教师组 网络安全竞赛样题卷 A模块基础设施设置 安全加固 200分 A 1任务一 登录安全加固 Windows Linux A 2任务二
  • 部门新来的00后太猛了,老油条表示真干不过...

    在程序员职场上 什么样的人最让人反感呢 是技术不好的人吗 并不是 技术不好的同事 我们可以帮他 是技术太强的人吗 也不是 技术很强的同事 可遇不可求 向他学习还来不及呢 真正让人反感的 是技术平平 却急于表现自己的人 每天加班到12点 在老
  • js 解析表达式,js的算法案例

    大家好 给大家分享一下js 解析表达式 很多人还不知道这一点 下面详细解释一下 现在让我们来看看 01 模拟实现 new 首先 这里呢 先简单说明一下 new 关键字的基本作用 有以下三点 创建一个新的对象 把Person方法的原型 pro
  • 一致性哈希算法,hash(key)是负值时,会出现异常吗?

    一致性哈希算法 hash key 是负值时 会出现异常吗 一致性哈希算法中 哈希函数hash key 的返回值通常是一个非负整数 如果hash key 返回负值 则可能会出现一些问题 例如无法正确地映射对象到哈希环上的位置 或者无法正确地找
  • MySQL中,什么是 crash-safe?

    crash safe 是指发生宕机等意外情况下 服务器重启后数据依然不会丢失的情况 在MySQL中 crash safe 是指数据库系统在发生意外崩溃或故障时 能够保证数据的一致性和持久性 具体来说 一个 crash safe 的数据库系统
  • 【源码篇】基于SpringBoot+thymeleaf实现的大学生自习室座位预定系统

    文章目录 系统介绍 管理员 学生 技术选型 成果展示 账号地址及其他说明 系统介绍 基于SpringBoot thymeleaf实现的大学生自习室座位预定系统是为座位管理打造的一款在线管理平台 它可以实时完成信息处理 使其系统化和规范化 系
  • 关于#java#的问题:该文件夹下有两个文件file1和file2,请将files文件夹从原位置整体复制到其他磁盘中

    现有一个文件夹files 该文件夹下有两个文件file1和file2 请将files文件夹从原位置整体复制到其他磁盘中 import java io File import java io IOException import java n
  • 请老师修改论文怎么说【一文读懂】

    大家好 今天来聊聊请老师修改论文怎么说 希望能给大家提供一点参考 以下是针对论文重复率高的情况 提供一些修改建议和技巧 请老师修改论文怎么说 一 引言 在学术领域 论文的质量和准确性是至关重要的 当我们在撰写论文时 可能会遇到各种问题 如语
  • python使用numpy实现高斯核并对数据进行高斯滤波

    自定义高斯核 size为一个数表示一维高斯核 两个数的列表表示二维高斯核 import numpy as np def gaussian filter size sigma if type size int siz int size 1 2
  • MySQL中,redolog 和 binlog 有什么区别?

    MySQL中 redolog 和 binlog 有什么区别 概述 redo log 重做日志 和 binlog 归档日志 都是 MySQL 的重要的日志 它们的区别如下 redo log 是物理日志 记录的是 在某个数据页上做了什么修改 b