什么是redo log,binlog,undo log?有什么用?

    技术2023-07-10  65

    一,redo log

    实现方式:Innodb存储引擎 数据库并不是每次操作都写到磁盘,而是先将操作写到内存,过一段时间,再将所有操作一起写入磁盘,这样可以减少IO操作。 redo log就提供这样的功能,每句sql都写到redo log 的内存里,并标记为prepare。当事务提交后,会将此条redolog置为commit状态。之后再进行写入磁盘。 这样就减少了IO操作,并保证一旦落库,即使数据库宕机,也能从redolog恢复已提交的事务。 redolog缓存是固定大小的循环缓存.

    二,binlog

    实现方式:数据库server层 binlog 是对数据更新进行的记录,以事务的形式,保存在磁盘中。 主要作用: 1.主从复制 2.数据恢复 3.增量备份 binlog有三种模式: 1.statement:保存sql语句 2.row:每行被修改成了何种数据。 3.mixedLevel:混合使用,自动判断

    三,undolog

    实现方式:Innodb存储引擎,是逻辑表,即在数据记录中增加列和版本字段。 作用: 1.实现数据回滚 2.实现MVCC

    四,redolog 和binlog 更新顺序

    两个日志记录的顺序: 更新的行如果不在内存,从磁盘取出 -> 修改内存中的值 -> 写入redo-log状态为prepare -> 写binlog -> 提交事务redo-log进行commit

    Processed: 0.011, SQL: 9