天堂

  :: :: 博问 :: 闪存 :: :: :: 订阅 订阅 :: 管理 ::

2013年3月11日

摘要: 原文链接:http://www.mysqlops.com/2012/04/06/innodb-log3.html本文讨论MySQL数据库InnoDB存储引擎LOG漫游的问题: 04 – Checkpoint 理论上来说,如果MySQL数据库InnoDB存储引擎的buffer足够大,就不需要将数据本身持久化。将全部的redo log重新执行一遍 就可以恢复所有的数据。但是随着时间的积累,Redo Log会变的很大很大。如果每次都从第一条记 录开始恢复,恢复的过程就会很慢,从而无法被容忍。为了减少恢复的时间,就引入了Checkpoint机制。 - 脏页(dirty page) 如果一个数据页在.. 阅读全文
posted @ 2013-03-11 16:07 zuoxingyu 阅读(414) 评论(0) 推荐(0) 编辑

摘要: 原文链接:http://www.mysqlops.com/2012/04/06/innodb-log2.html03 – 日志的内容 - 数据是什么 从不同的角度和层次来看,我们可以将数据库中的数据看作: A. 关系数据 B. 元组或对象 C. 存在Page中的二进制序列 因此Log中也可以记录不同的内容: - 物理的日志(Physical Log) A. 记录完整的Page B. 记录Page中被修改的部分(page中的偏移,内容和长度). 优点:因为恢复时,完全不依赖原页面上的内容,所以不要求持久化了的数据保持在一个一致的状态。 比如在写一个页... 阅读全文
posted @ 2013-03-11 16:06 zuoxingyu 阅读(449) 评论(0) 推荐(1) 编辑

摘要: 原文链接:http://www.mysqlops.com/2012/04/06/innodb-log1.html本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游 00 – Undo Log Undo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。 - 事务的原子性(Atomicity) 事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。如果在执行的过程中发生 了错误,要回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过。 - 原理 Undo Log... 阅读全文
posted @ 2013-03-11 16:05 zuoxingyu 阅读(473) 评论(0) 推荐(0) 编辑

摘要: 原文链接:http://www.mysqlops.com/2011/12/20/understanding_index2.html如果要看“由浅入深理解索引的实现(1)”,请点这里。教科书上的B+Tree是一个简化了的,方便于研究和教学的B+Tree。然而在数据库实现时,为了 更好的性能或者降低实现的难度,都会在细节上进行一定的变化。下面以InnoDB为例,来说说 这些变化。04 - Sparse Index中的数据指针 在“由浅入深理解索引的实现(1)”中提到,Sparse Index中的每个键值都有一个指针指向 所在的数据页。这样每个B+Tree都有指针指向数据页。如图Fig.1所示:F. 阅读全文
posted @ 2013-03-11 16:03 zuoxingyu 阅读(236) 评论(0) 推荐(0) 编辑

摘要: 原文链接:http://www.mysqlops.com/2011/11/24/understanding_index.html00 – 背景知识- B-Tree & B+Tree http://en.wikipedia.org/wiki/B%2B_tree http://en.wikipedia.org/wiki/B-tree- 折半查找(Binary Search) http://en.wikipedia.org/wiki/Binary_search_algorithm- 数据库的性能问题 A. 磁盘IO性能非常低,严重的影响数据库系统的性能。 B. 磁盘顺序读写比随机读写的性能高 阅读全文
posted @ 2013-03-11 16:02 zuoxingyu 阅读(198) 评论(0) 推荐(0) 编辑