美文网首页
Mysql缓存与redo log

Mysql缓存与redo log

作者: 沐兮_d64c | 来源:发表于2018-07-02 00:42 被阅读0次

1,概念

1)InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理
bp(buffer pool):InnoDB数据库page的缓存。
page:对InnoDB中数据的任何修改,首先在bp的page上进行。修改后的page标记为dirty page。
flush list:存放dirty page,后续由专门的thread写入磁盘中。
2)使用bp的好处:避免每次对page的修改都进行IO操作,将多次对页面的修改合并成一次IO操作。
引入问题:会造成数据的不一致性,RAM和Disk中数据不一致。
解决(数据不一致性):使用redo log,将所有对page进行的修改操作,都写入一个专门的文件中数据库启动时,会从中恢复。
redo log的影响:延迟了bp中page刷新到磁盘,提高了数据库的吞吐量。 额外的redo log顺序IO的写入开销,以及数据库启动时使用redo log恢复所需时间。

2,redo log相关参数

show variables like "%innodb_log%";
1)innodb_log_file_size 指定redo log日志文件大小,默认48M
innodb_log_files_in_group redo log日志文件组中文件的数量,默认2个,ib_logfile0和ib_logfile1
innodb_log_buffer_size redo log buffer的大小,默认为16M
2)日志组中的文件大小是一致的,以循环的方式运行。ib_logfile0写满时,切换到ib_logfile1,ib_logfile1写满时,再次切换到ib_logfile0。

3,redo log写入过程

1)redo log buffer 向 redo log file 写,是按512个字节,也就是一个扇区的大小进行写入。扇区是写入的最小单位。

image.png
参数innodb_flush_log_at_trx_commit用来控制事务日志刷新到磁盘的策略。
image.png
2)将redo log buffer中的内容刷新到磁盘的redo log fileib_logfile中的条件。
保证日志先行,每次事务commit前,都会将redo log刷新到磁盘上。
redo log是一个环(ring)结构,当redo空间快占满时,将会将部分dirty pages flush到disk上,然后释放部分redo log。
image.png
3)对比binlog image.png

4,InnoDB缓冲池和redo log_buffer

1)innodb_buffer_pool缓冲池提高数据库整体性能。

image.png
2)innodb读取页操作时,先将从磁盘读到的页放在缓冲池中,下次再次读取,先判断是否缓存命中,若否,则读磁盘中的页。 image.png
Innodb_buffer_pool_pages_total total page数
Innodb_buffer_pool_pages_data 有数据的page数
Innodb_buffer_pool_read_requests read请求次数
Innodb_buffer_pool_reads bp缓冲池中没有的请求次数,也就是读取磁盘次数
3)mysql crash时,buffer pool中的数据都会丢失。
innodb数据文件中,会存储checkpoint信息,redo log中也存储checkpoint信息。InnoDB会对比数据文件ibd和redo log中的checkpoint信息,找出最后一次checkpoint对应的log sequence number,通过redo log的变更记录重新应用到数据库

5,对比undo log

1)Undo Log 是为了实现事务的原子性(rollback),在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。
2)Undo log是InnoDB MVCC事务特性的重要组成部分。当我们对记录做了变更操作时就会产生undo记录,Undo记录默认被记录到系统表空间(ibdata)中,但从5.6开始,也可以使用独立的Undo 表空间。
3)Undo记录中存储的是老版本数据,当一个旧的事务需要读取数据时,为了能读取到老版本的数据,需要顺着undo链找到满足其可见性的记录。

image.png

相关文章

网友评论

      本文标题:Mysql缓存与redo log

      本文链接:https://www.haomeiwen.com/subject/dtwxuftx.html