首页 > 数据库 >来聊一聊MySQL InnoDB的LSN

来聊一聊MySQL InnoDB的LSN

时间:2024-07-15 16:55:04浏览次数:16  
标签:事务 log 记录 一聊 LSN InnoDB MySQL 日志

前言

在MySQL 的InnoDB存储引擎中,LSN(日志序列号)其实是一个非常重要的概念。它用来标识数据库某一特点时间点和状态。并在事务管理,崩溃恢复和数据一致性维护中发生重要作用。
下面,我们来讲下LSN的实现机制。包括其生成、管理和使用方式。

什么是LSN

LSN是全局递增的序列号。用于标识每个日志记录和数据页的修改时间点。每次事务提交或数据变更时,都会生成一个新的LSN。LSN在MySQL中起到以下作用:

  • 事务日志:用于记录已经提交的事务变更,用于崩溃恢复
  • 数据页: 每个数据页包括一个LSN,标识该页最后一次修改的时间。
  • 检查点:用于记录数据库的一致性状态。用于崩溃恢复

LSN的生成和管理

事务日志

InnoDB 使用两种主要日志来管理事务:redo log 和 undo log。

Redo Log(重做日志):记录已提交事务的变更,用于崩溃恢复。每条 redo log 记录都包含一个 LSN。
Undo Log(撤销日志):记录未提交事务的变更,用于事务回滚和 MVCC(多版本并发控制)。每条 undo log 记录也包含一个 LSN。
每次事务开始时,InnoDB 会生成一个新的 LSN,并在事务提交时将其写入 redo log 和 undo log。

数据页

每个 InnoDB 数据页都包含一个 LSN,标识该页最后一次修改的时间点。数据页的 LSN 用于检查

标签:事务,log,记录,一聊,LSN,InnoDB,MySQL,日志
From: https://blog.csdn.net/songguangfan/article/details/140439970

相关文章

  • mysql备份还原——binlog查看工具之show binlog的使用
    (4.8)mysql备份还原——binlog查看工具之mysqlbinlog及showbinlog的使用关键词:showbinlog,mysqlbinlog查看,二进制文件查看,binlog查看工具,binlog查看方法 0、使用showmasterstatus; 使用它可以直接查看binlog日志信息;总结:指定文件:showbinlogeventsin'b......
  • MySQL的并发问题的解决方案
    怎么解决脏读、不可重复读、幻读这些问题呢?其实有两种可选的解决方案方案一、读操作利用MVCC(多版本并发控制),写操作进行加锁。所谓的MVCC,就是生成一个ReadView,通过ReadView找到符合条件的记录版本(历史版本由undolog日志构成)。查询语句只能读到在生成ReadView之前已提交事所做的......
  • mysql参考配置
    jira数据库参考配置#cat/usr/lib/systemd/system/mysqld.service[Unit]Description=MySQLServerDocumentation=man:mysqld(8)After=network.target[Service]Type=notifyUser=mysqlGroup=mysqlExecStart=/usr/local/mysql-5.7/bin/mysqld--defaults-file=/etc/my.cnf$MYSQL_O......
  • MySQL高级应用指南:从数据库设计到高可用架构
    引言欢迎阅读这篇MySQL文章本文旨在帮助你更深入地了解和掌握MySQL数据库的高级应用技术通过一些实际的开发案例和代码示例你将能够更好地运用MySQL进行复杂的数据操作和管理分类教程一数据库设计与优化在设计和优化数据库时需要考虑到表结构(TableStructure)索引(I......
  • 基于SpringBoot+MySQL+SSM+Vue.js的购物商城系统(附论文)
    获取见最下方名片获取见最下方名片获取见最下方名片演示视频基于SpringBoot+MySQL+SSM+Vue.js的购物商城系统(附论文)技术描述开发工具:Idea/Eclipse数据库:MySQLJar包仓库:Maven前端框架:Vue/ElementUI后端框架:Spring+SpringMVC+Mybatis+SpringBoot文字描......
  • 基于SpringBoot+MySQL+SSM+Vue.js的家政公司服务平台系统(附论文)
    获取见最下方名片获取见最下方名片获取见最下方名片演示视频基于SpringBoot+MySQL+SSM+Vue.js的家政公司服务平台系统(附论文)技术描述开发工具:Idea/Eclipse数据库:MySQLJar包仓库:Maven前端框架:Vue/ElementUI后端框架:Spring+SpringMVC+Mybatis+SpringBoo......
  • mysql 查询
    它的别名是positioninselect*from表名wherelocate(字符,字段)select*from表名whereposition(字符in字段);例子:判断site表中的url是否包含'http://'子串,如果不包含则拼接在url字符串开头updatesiteseturl=concat('http://',url)wherelocate('http://',url......
  • MySQL - [17] Oracle、SQLServer、MySQL数据类型对比
    题记部分 一、数据类型对比对应关系(1)整数类型Oracle的NUMBER(*,0)对应SQLServer的INT和MySQL的INTOracle的BIGINT可能需要映射到SQLServer的BIGINT和MySQL的BIGINT(2)浮点数类型Oracle的BINARY_FLOAT/BINARY_DOUBLE对应SQLServer的FLOAT和MySQL......
  • MySQL操作大全
    目录文章目录目录@[toc]基础操作基本命令1、用命令登录MySql2、查看MySql版本3、显示数据库列表创建数据库4、选择数据库5、显示库中的数据表6、显示数据表的结构7、导出数据8、导入数据9、创建用户10、用户授权11、事件11.1、查看事件是否开启......
  • MySQL8.0.33 主主复制高可用部署
    一、服务器规划1.1服务器详情主机名IP配置备注MySQLMasterVIP10.0.0.10虚拟IP跳转MySQL连接地址MySQLMaster0110.0.0.112H4GMySQLMaster0210.0.0.122H4G1.2修改主机名##修改各主机的主机名如:10.0.0.11服务器[root@localhost~]#hostnamectlset-hostnamemysqlmas......