Innodb日志与事务

1.Innodb日志:

错误日志:记录出错信息,也记录一些警告信息或者正确的信息。
查询日志:记录所有对数据库请求的信息,不论这些请求是否得到了正确的执行。
慢查询日志:设置一个阈值,将运行时间超过该值的所有SQL语句都记录到慢查询的日志文件中。
二进制日志:记录对数据库执行更改的所有操作。
中继日志:事务日志:

2.Innodb事务:

1.读未提交(RU)
2.读已提交(RC)
3.可重复读(RR)
4.串行 

3.innodb引擎的4大特性:

插入缓冲(insert buffer)
二次写(double write)
自适应哈希索引(ahi)
预读(read ahead)

4.事务是如何通过日志实现的:

事务日志是通过redo和innodb的存储引擎日志缓冲(Innodb log buffer)来实现的,当开始一个事务的时候,会记录该事务的lsn(log sequence number)号; 当事务执行时,会往InnoDB存储引擎的日志的日志缓存里面插入事务日志;
当事务提交时,必须将存储引擎的日志缓冲写入磁盘(通过innodb_flush_log_at_trx_commit来控制),也就是写数据前,需要先写日志。这种方式称为“预写日志方式”

原文地址:https://www.cnblogs.com/ConnorShip/p/10030338.html

时间: 2024-10-24 04:52:32

Innodb日志与事务的相关文章

【MySQL】InnoDB日志机制深入分析

版权声明:尊重博主劳动成果,欢迎转载,转载请注明出处 --爱技术的华仔 Log & Checkpoint Innodb的事务日志是指Redo log,简称Log,保存在日志文件ib_logfile*里面.Innodb还有另外一个日志Undo log Undo log是存放在共享表空间里面的(ibdata*文件). 由于Log和Checkpoint紧密相关,因此将这两部分合在一起分析. 名词解释:LSN,日志序列号,Innodb的日志序列号是一个64位的整型. 写入机制 Log写入 LSN实际上对

MySQL Innodb日志机制深入分析

1.1. Log & Checkpoint Innodb的事务日志是指Redo log,简称Log,保存在日志文件ib_logfile*里面.Innodb还有另外一个日志Undo log,但Undo log是存放在共享表空间里面的(ibdata*文件). 由于Log和Checkpoint紧密相关,因此将这两部分合在一起分析. 名词解释:LSN,日志序列号,Innodb的日志序列号是一个64位的整型. 1.1.1. 写入机制 1.1.1.1. Log写入 LSN实际上对应日志文件的偏移量,新的LS

innodb日志文件大小

innodb是用多个文件作为一组循环日志,通常不需要修改默认的日志数量,只修改每个日志文件的大小即可,要修改日志文件大小,需要完全关闭mysql,将旧的日志文件移到其他地方保存,重新配置参数,然后重启,一定要确保mysql干净的关闭了,或者还有日志文件可以保证需要应用到数据文件的事务记录,否则数据库就无法恢复了.当重启服务器的时候,查看mysql的错误日志,在重启成功之后,才可以删除旧的日志文件. innodb日志文件大小

MySQL——innodb日志管理

innodb日志管理机制: 1.innodb存储引擎是支持事务ACID特性的,这个理论基本就是一个关系型数据库相关的数据恢复原形设计,包括日志.回滚.redo.并发控制.buffer pool等管理方面,内容非常全面: 2.innodb的buffer pool主要用来存储访问过的数据页面,他就是一块连续的内存,通过一定的算法可以使这块内存得到有效的管理,它是数据库系统中拥有最大块内存的系统模块. innodb存储引擎中数据的访问是按照页(也可以叫块,默认为16KB)的方式从数据库文件读取到buf

MySQL InnoDB 日志管理机制中的MTR和日志刷盘

1.MTR(mini-transaction) 在MySQL的 InnoDB日志管理机制中,有一个很重要的概念就是MTR.MTR是InnoDB存储擎中一个很重要的用来保证物理写的完整性和持久性的机制. 先看下MTR在MysQL架构中的位置. MTR是上面的逻辑层与下面物理层的交互窗口,同时也是用来保证下层物理数据正确性.完整性及持久性的机制. 2.日志刷盘的触发条件 触发条件 描述 时间 线程默认每秒刷新一次. 空间 Log Buffer空间用完了 Check Point checkPoint的

MySQL 基础知识梳理学习(三)----InnoDB日志相关的几个要点

1.REDO LOG 是用来做数据库crash recovery的,是保证数据库数据正确性.完整性及持久性的重要机制之一.在数据库操作中,它保存了对InnoDB表中数据的修改记录,所以也叫日志文件. 2.日志文件内部也是按照大小相等的页面切割,页面大小为512个字节(回顾下数据页是多大? ).考虑到机械硬盘的块大小也是512字节,所以日志块也是如此设计. 解释:这是因为写日志其实就是为了提高数据库写入吞吐量,如果每次写入是磁盘块大小的倍数,效率才是最高的,并且日志将逻辑事务对数据库的分散随机写入

Mysql --09 Innodb核心特性——事务

目录 Innodb核心特性--事务 1.什么是事务 2.事务的通俗理解 3.事务ACID特性 4.事务流程举例 5.事务的控制语句 6.事务隐式提交情况 7.事务日志redo基本功能 8.redo数据实例恢复过程 9.事务日志undo 10.redo和undo的存储位置 11.事务中的锁 12.多版本并发控制(MVCC) 13.锁的粒度 14.事务的隔离级别 15.脏读 幻读 重复读 查询原因,和解决办法 (RR级别) Innodb核心特性--事务 1.什么是事务 主要针对DML语句(updat

优化InnoDB的只读事务

InnoDB存储引擎可以避免read-only的事务写transaction id(trx_id属性)的开销.transaction id只有在一个事务 中有写操作或者上了写锁的事务(比如select ...for update)中才需要.不写transaction id能大大降低MySQL查询或者DML 语句建立快照的数据结构的大小. 现阶段,InnoDB在如下情况下会检测到只读事务: 当使用start transaction read only开始一个事务的时候.在这种情况下,如果试图修改数

MySQL InnoDB四个事务级别 与 脏读、不重复读、幻读

MySQL InnoDB事务隔离级别脏读.可重复读.幻读 希望通过本文,可以加深读者对ySQL InnoDB的四个事务隔离级别,以及脏读.不重复读.幻读的理解. MySQL InnoDB事务的隔离级别有四级,默认是"可重复读"(REPEATABLE READ). ·        未提交读(READUNCOMMITTED).另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据(脏读). ·        提交读(READCOMMITTED).本事务读取到的