Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1398450
  • 博文数量: 277
  • 博客积分: 2551
  • 博客等级: 少校
  • 技术积分: 3918
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 22:46
文章分类

全部博文(277)

文章存档

2017年(3)

2016年(9)

2015年(65)

2014年(27)

2013年(85)

2012年(61)

2011年(27)

分类: Mysql/postgreSQL

2015-05-24 07:53:59

     (1)mysql中的页的recongize是做什么的,为什么要recongize?
         页的整理操作只需记录页的编号以及日志的类型
     (2)物理逻辑日志是怎么回事?
          物理日志的尺寸比较大,逻辑日志比较小,在保证记录一致性的情况下,各有优劣
          物理逻辑日志是指页是物理日志,页内部操作是逻辑日志
     (3)LSN中的具体概念?
         LSN在每个页中都有,并且记录的是字节数
         表示事务写入到redo日志的字节量
     (4)undo日志与redo日志?
         undo 操作是记录的相反操作,如果记录日志是insert,则undo就是delete
         因此,undo日志是逻辑日志,不是物理逻辑日志,如果使用物理逻辑记录,那么回滚的代价太大了
         undo日志的组织方式也因此不是按页的方式组织,因为页是物理的组织方式,而redo日志是物理逻辑日志
         undo日志也用来实现了mvcc中的一致的非锁定读功能,就是读取的时候不需要去等待记录上的x锁
         直接去取记录的之间的版本记录,这个只有undo日志才能这样的记录,也就是镜像记录
         undo页中可以保存多个事务的undo日志,undo日志也会产生redo日志
         说白了,数据库就是实现协调对记录的并发访问,而并发的本质就是资源的竞争
     (6)检查点机制如何工作?
          检查点是通过LSN工作,对比检查点的LSN与redo 日志中的LSN,将差距的字节数通过relog来replay
          redo日志实际上是循环复用的,检查点机制是为了缩短数据库的恢复时间
     (7)为什么说事务的持久化,就是redo日志的持久化?
          redo日志是数据的全量持久化,还是增量持久化?
          当事务提交时,首先将redo 日志写入文件,实际数据页刷新到磁盘的操作由检查点负责,这个就是WAL机制
          宕机后,通过redo日志来完成数据的恢复
          innodb_flush_log_at_trx_commit这个实际是控制事务写入redo 日志的时间点
          说明实际的数据与redo 日志的持久化是分离的,redo日志只是为了以防万一的恢复机制
阅读(1025) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~