InnoDB内存结构

buffer pool:

内部是以页(16K)为单位
包括:
数据页、索引页、修改缓冲区、自适应hash索引、锁信息、数据字典
其中数据页、索引页采用LRU算法(最近最少使用)
修改缓冲区(change buffer):辅助索引的更新时,先放到修改缓冲区中,等数据库空闲时进行合并。
使用场景:插入、修改、删除
目的:减少磁盘IO

redo log buffer

记录当前事务中对数据库的操作。事物完成之前事物所有的操作需要刷新到磁盘中(redo log)
分为三个模式(innodb_flush_log_at_trx_commit)
0:定时写入磁盘
1:事务结束时,调用fsync(实时写入)
2:事物结束时,不调用fsync,由文件系统判断时机写入磁盘
其中1保证数据不会丢失。

内存数据落盘

数据更新时,再内存中更新,并不会实时更新到磁盘中,内存中数据与磁盘中数据不一致(脏页)。
InnoDB落盘时机:
强制落盘:数据库关闭时执行
模糊落盘:
1、定时落盘
2、buffer pool再执行LRU算法时,数据页打到一定阈值,执行落盘
3、redo log使用率>75%执行异步落盘,>90%执行同步落盘
4、脏页太多,执行落盘

落盘双写:
1、脏页写入双写缓冲区
2、双写缓冲区写入系统表空间的双写缓冲区
3、写入用户表空间,然后再执行1

双写原因:防止小概率数据写时损坏事件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值