MYSQL 日志 及其作用

MYSQL 日志 及其作用

  1. Mysql 的三大日志 bin log,redo log ,undo log
    1. bin log (二进制日志)又称 逻辑日志
      1. bin log 用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存磁盘中,是mysql 的逻辑日志,由server层进行记录,任何存储引擎的mysql 数据库都会记录 binlog 日志
      2. 逻辑日志:可以简单理解为记录的就是sql 语句
      3. 物理日志:因为mysql 数据做种是保存在数据页中的,物理日志记录的就是数据页的变更
      4. binlog 是通过追加的方式进行写入的,可以通过max_binlog_size 参数设置每个binlog文件的大小,当文件大小达到给定的值之后,会生成心得文件来保存日志
      5. 主要是在主从复制和数据恢复的时候使用,每次提交事务的时候都都会记录 binlog
    2. 事务日志(redo log和undo log)
      1. 关系型数据的四大特性包括 原子性,一致性,隔离性持久性(ACID)
      2. redo log(重做日志)
        1. redo log 本质是记录一下事务对数据库做了那些操作
        2. 事务的持久性是通过redo log来实现的 事务的隔离性是通过读写锁+MVCC机制来实现的
        3. redo日志占用的空间非常小: 存储表空间ID、页号、偏移量以及需要更新的值所需的存储空间是很小的。
        4. redo日志是顺序写入磁盘的: 在执行事务的过程中,每执行一条语句,就可能产生若干条redo日志,这些日志是按照产生的顺序写入磁盘的,也就是使用顺序IO。
        5. redolog日志是物理日志,保存了数据库中的值。
      3. undo log
        1. undo log 主要是 做回滚日志,保证原子性
        2. 原子性是指对数据库同一系列操作,要么全部成功,要么全部失败,不可能处理部分成功的情况,原子性的底层就是通过undolog 实现的
        3. undo log 也是 MVCC(多版本并发控制)实现的关键
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值