innodb ibd结构图

最近在翻姜老师的存储引擎2,干货很多。结合Jeremy Cole的innodb分析工具,可以加深大家对InnoDB物理结构的理解。

绘图过程中参考了姜承尧的InnoDB存储引擎2、Jeremy Cole的博客及github。

学习过程中实验笔记有点乱不太好贴。先贴图吧。刚入行的新司机,可能画的不对的地方,请指正。

############################################################

下面这张是姜老师书上关于page directory的分析:

时间: 2024-10-06 21:22:53

innodb ibd结构图的相关文章

InnoDB物理行中null值的存储的推断与验证

前言 想写这边文章,是因为之前想写一个解析innodb ibd文件的工具,在写这个工具的过程中,发现逻辑记录转物理记录的转换中,最难的有两部分,一是每行每字段null值占用的字节和存储,二是变长字段占用的字节和存储的格式.本文中重点针对第一种情况.第二种情况之后会专门写一篇之前看姜成尧的<InnoDB存储引擎>103页介绍compact行记录格式: 变长字段之后的第二个部分是NULL标志位,该位指示了该行数据中是否有NULL值,有则用1表示.该部分所占字节为1字节 之后便思考是否不管有多少个列

【转】mysql-innodb-buffer pool 结构分析

转自:http://blog.csdn.net/wyzxg/article/details/7700394 MySQL官网配置说明地址:http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html 其他参考: <高性能MySQL> - 8.4.5 InnoDB缓冲池 <MySQL技术内幕InnoDB存储引擎>(第二版内容有所更新) - 2.3 InnoDB体系结构 ############################

MySQL实例多库某张表数据文件损坏导致xxx库无法访问故障恢复

一.问题发现 命令行进入数据库实例手动给某张表进行alter操作,发现如下报错. mysql> use xx_xxx; No connection. Trying to reconnect... Connection id: 5 Current database: *** NONE *** Reading table information for completion of table and column names You can turn off this feature to get

关于Mysql数据库,这些知识点你确定都会了吗?

说到Mysql, 大家都很熟悉,因为这是我们工作中不可避免会使用到的技术,但是你真正的掌握了它吗?还是每天在重复crud呢!那么怎么样告别crud呢!来到这里就对了.简单概念的上的东西我就不提了.直接上技术. 数据库三大范式 第一范式1NF: 数据表中的字段,必须是不可拆分的最小单元,也就是确保每一个字段的原子性.例如: 那么怎么去设计才是正确的呢?其中 address 可以再分为省.市.地区.街道.名牌号,违反了第一范式. 既然要满足原子性不可以分割,我们把这些可以拆分的数据都给拆分出来不就行

MySQL表结构为InnoDB类型从ibd文件恢复数据

客户的机器系统异常关机,重启后mysql数据库不能正常启动,重装系统后发现数据库文件损坏,悲催的是客户数据库没有进行及时备份,只能想办法从数据库文件当中恢复,查找资料,试验各种方法,确认下面步骤可行: 一.找回表结构,如果表结构没有丢失直接到下一步 a.先创建一个数据库,这个数据库必须是没有表和任何操作的. b.创建一个表结构,和要恢复的表名是一样的.表里的字段无所谓.一定要是innodb引擎的.CREATE TABLE `test`(  `testID` bigint(20)) ENGINE=

亲测Mysql表结构为InnoDB类型从ibd文件恢复数据

客户的机器系统异常关机,重启后mysql数据库不能正常启动,重装系统后发现数据库文件损坏,悲催的是客户数据库没有进行及时备份,只能想办法从数据库文件当中恢复,查找资料,试验各种方法,确认下面步骤可行: 一.找回表结构,如果表结构没有丢失直接到下一步 a.先创建一个数据库,这个数据库必须是没有表和任何操作的. b.创建一个表结构,和要恢复的表名是一样的.表里的字段无所谓.一定要是innodb引擎的.CREATE TABLE `test`(  `testID` bigint(20)) ENGINE=

亲測Mysql表结构为InnoDB类型从ibd文件恢复数据

客户的机器系统异常关机,重新启动后mysql数据库不能正常启动,重装系统后发现数据库文件损坏,悲催的是客户数据库没有进行及时备份,仅仅能想办法从数据库文件其中恢复,查找资料,试验各种方法,确认以下步骤可行: 一.找回表结构.假设表结构没有丢失直接到下一步 a.先创建一个数据库.这个数据库必须是没有表和不论什么操作的. b.创建一个表结构.和要恢复的表名是一样的. 表里的字段无所谓. 一定要是innodb引擎的.CREATE TABLE `test`(  `testID` bigint(20))

【MySQL】InnoDB引擎ibdata文件损坏使用ibd文件恢复数据

参考:http://my.oschina.net/sansom/blog/179116 参考:http://www.jb51.net/article/43282.htm 注意!此方法只适用于innodb_file_per_table独立表空间的InnoDB实例. 此种方法可以恢复ibdata文件被误删.被恶意修改,没有从库和备份数据的情况下的数据恢复,通过测试在ibdata被修改,实例异常shutdown情况下,不能保证数据库所有表数据的100%恢复,目的是尽可能多的恢复. [InnoDB引擎i

Recovering InnoDB table from an .ibd file.

Recovering an InnoDB table from only an .ibd file. Sometime you may need to recover a table when all you have is the .ibd file. In this case, if you try to load it into a new instance, your likely to encounter some errors about the table id not match