随笔分类 - mysql
摘要:两阶段提交 事务提交后,redo log 和bin log 都需要刷新到磁盘中,但这两个刷盘是独立的逻辑,可能出现某一个成功,另一个失败的状况。 在将redo log刷盘后,MySQL宕机,binlog没有来得及刷盘。此时在重启MySQL后,会通过redo log 将值更新,但bin log中没有这
阅读全文
摘要:bin log binlog文件记录了所有数据库表结构更改和编数据修改的日志。 与redo log的区别 适用对象不同:binlog是server层实现的日志,所有存储引擎都可以使用,而redo log是InnoDB实现的日志。文件格式不同:binlog有三种格式,STATEMENT(默认),ROW
阅读全文
摘要:MySQL日志 undo log(回滚日志):由InnoDB生成的日志,实现事务中的原子性,主要用于事务回滚和MVCC。redo log(重做日志):由InnoDB生成的日志,实现事务中的持久性,主要用于掉电等故障恢复。bin log(归档日志):由Server层生成的日志,主要用于数据备份和主从复
阅读全文
摘要:MVCC实现机制 mvcc的实现依赖于几个字段 表中的隐藏列: row_id:行id,没有主键和唯一列时默认生成的一个隐藏主键,有的话不生成 6字节trx_id:修改该行的事务id、roll_pointer:回滚指针,指向undo log 版本链 ReadView字段:creator_trx_id、
阅读全文