摘要: 博客已转移到腾讯DBA博客http://tencentdba.com/腾讯互娱内部维护了一个MySQL分支,基于官方5.5.24,实现了类似于Oracle 11g的快速加字段功能,这个分支我们内部称为TMySQL。该功能通过扩展存储格式来实现,原理类似于Oracle 11g,以下介绍下其实现原理。1... 阅读全文
posted @ 2013-09-13 20:56 vinchen 阅读(2921) 评论(1) 推荐(0) 编辑
摘要: 上一篇《Innodb页面存储结构-1》介绍了Innodb页面存储的总体结构,本文会介绍页面的详细内容,主要包括页头、页尾和记录的详细格式。 学习数据结构时都说程序等于数据结构+算法,而在innodb中,其页面结构和记录格式可以说就是其数据结构。并且理解这些结构后,对innodb的页面行为(算法)的理解也有很大帮助。 1. 表空间 介绍页面具体结构之前,先介绍一些Innodb表空间的概念。 ... 阅读全文
posted @ 2013-09-13 19:32 vinchen 阅读(2532) 评论(2) 推荐(1) 编辑
摘要: MySQL使用可重复读来作为默认隔离级别的主要原因是语句级的Binlog。RR能提供SQL语句的写可串行化,保证了绝大部分情况(不安全语句除外)的DB/DR一致。 另外,通过这个测试发现MySQL 5.0与5.1在RC下表现是不一样的,可能存在兼容性问题。 阅读全文
posted @ 2012-11-19 20:34 vinchen 阅读(13452) 评论(6) 推荐(2) 编辑
摘要: 本文介绍Innodb的索引数据页面存储结构,主要介绍数据页面的整体结构,而页面的详细结构将会在另一篇中介绍。1. B+树阅读本文前,首先要知道一些关于B树的基础知识。Innodb的一个表可能包含多个索引,每个索引都使用B+树来存储。而索引包括聚集索引和二级索引,聚集索引使用表的主键作为索引键,包含表的所有字段。二级索引只包含索引键和聚集索引键(主键)的内容,不包括其他字段。每一个索引都是一棵B+树,每棵B+树由很多页面组成,而每个页面大小一般为16K。从B+树的组织结构来看,B树的页面可分为:叶子节点:B树层次为0的页面,存储记录的所有内容非叶子节点:B树层次大于0的页面,只存储索引键和页面指 阅读全文
posted @ 2012-09-10 22:43 vinchen 阅读(4245) 评论(1) 推荐(1) 编辑