关闭 mysql redo_MySQL redo log总结

由InnoDB引擎提供,重做日志。

1.为了保证crash-safe,崩溃安全,保证事务的持久性,即事务ACID中的D。

2.提高效率。

当有数据修改时先写入redolog,然后再同步内存,合适时机再同步到内存,磁盘对于连续空间的读写效率较高。

redo log是固定大小的,比如可以配置为一组4个文件,每个文件的大小是1GB,总共就可以记录4GB的操作。从头开始写,写到末尾就又回到开头循环写。write pos是当前记录的位置,一边写一边后移,写到第3号文件末尾后就回到0号文件开头。checkpoint是当前要擦除的位置,也是往后推移并且循环的,擦除记录前要把记录更新到数据文件。

write pos和checkpoint之间的是空着的部分,可以用来记录新的操作。如果write pos追上checkpoint,表示满了,这时候不能再执行新的更新,得停下来先擦掉一些记录,把checkpoint推进一下。

当内存数据和磁盘数据不一致时,称为脏页,反之为干净页面。内存刷新到磁盘称为flush。flush有如下情形:

1.    redo log 写满。会造成mysql不接受更新。

2.    内存不足。

3.    空闲时间。

4.    Mysql关闭时。

flush是常态。如何控制脏页很重要。InnoDB有控制脏页的策略如下:

根据磁盘性能设置innodb_io_capacity参数。刷盘速度根据一个是脏页比例,一个是redo log写盘速度。参数innodb_max_dirty_pages_pct是脏页比例上限,默认值是75%。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值