【MYSQL】日志系统:redo log(重做日志)和binlog(归档日志)

一、redo log

  • redo log是InnoDB引擎特有的日志
  • 在通常情况下,我们避免不了对表进行更新的操作,我们需要把更新的操作写进磁盘,然后磁盘找到对应的那条记录再进行更新,整个过程的IO成本、查找成本都很高。
  • 如果在系统特别忙的时候去做这种更新,这无疑是让人非常崩溃的。
  • 为了不让人崩溃,MYSQL提供了一种WAL【Write-Ahead-Logging】技术,它的关键点就是先写日志,再写磁盘。
  • 具体来说就是,当有一条记录需要更新的时候,InnoDB存储引擎就会先把记录写到redo log中,并更新内存。然后,InnoDB存储引擎会在系统比较空闲的时候将这个操作记录更新到磁盘中。
  • InnoDB的redo log是固定大小的,有了redo log,InnoDB就可以保证技术数据库发生异常重启,之前提交的记录都不会丢失。

二、binlog

  • binlog是MYSQL的server层实现的,所有的引擎都可以使用

三、redo log和binlog的不同

  • redo log是InnoDB引擎特有的;binlog是MYSQL的server层实现的,所有引擎都可以使用
  • redo log是物理日志,记录的是“在某个数据页上做了什么修改”;binlog是逻辑日志,记录的是这个语句的原始逻辑
  • redo log日志是循环写的,空间固定会用完;binlog是可以追加写入的

这块内容后面遇到了再做补充
🤣🤣🤣

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值