IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL文件系统总1 -> 正文阅读

[大数据]MySQL文件系统总1

总体结构

在这里插入图片描述

数据文件(space file)

图来源于https://github.com/jeremycole/innodb_diagrams
在这里插入图片描述
page 0,1,3 是预留的page

page0 FSP_HDR 描叙tablespace的基本信息和extend的基本信息
page1 insert buffer bitmap的基本信息
page2 是inode page
page3 index page 真实的数据信息

每256M都会有一个XDES

页(page)

在这里插入图片描述

file header (38)

在这里插入图片描述

[root@dba-test-02 inno_space-main]# ./inno -f /data/mysql3307/data/musk/city.ibd -p 4
File path /data/mysql3307/data/musk/xxx.ibd path, page num 4
==========================block==========================
FIL Header:
CheckSum: 2426195884
Page number: 4
Previous Page: 4294967295
Next Page: 5
Page LSN: 23747813612
Page Type: 17855
Flush LSN: 0


index header(36)

在这里插入图片描述

Index Header
Number of Directory Slots: 46
Garbage Space: 0
Number of Records: 181
Max Trx id: 0
Page level: 0
Index ID: 245

FSEG header(20) segment的基本信息

system Records(26)

User Records

在这里插入图片描述
页里面的基本存储结构
infimum 逻辑的第一条记录;物理上的第一条记录
supremum 逻辑的最后一条记录; 物理上的第二条记录

测试:
mysql> create table t(i int not null, s char(10) not null,primary key(i));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into t (i,s) values(1,‘A’),(1,‘B’),(2,‘C’);
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0

使用innlock:https://github.com/gaopengcarl/innblock

[root@dba-test-02 innblock-master]# ./innblock /data/mysql3307/data/musk/t.ibd 3 16 
----------------------------------------------------------------------------------------------------
Welcome to use this block analyze tool:
[Author]:gaopeng [Blog]:blog.itpub.net/7728585/abstract/1/ [QQ]:22389860
[Review]:yejinrong@zhishutang [Blog]:imysql.com [QQ]:4700963
----------------------------------------------------------------------------------------------------
==== Block base info ====
block_no:3          space_id:190          index_id:246         
slot_nums:2         heaps_rows:5          n_rows:3         
heap_top:219        del_bytes:0           last_ins_offset:192        
page_dir:2          page_n_dir:2          
leaf_inode_space:190        leaf_inode_pag_no:2         
leaf_inode_offset:242       
no_leaf_inode_space:190     no_leaf_inode_pag_no:2         
no_leaf_inode_offset:50        
last_modify_lsn:23747828697
page_type:B+_TREE level:0         
==== Block list info ====
-----Total used rows:5 used rows list(logic):
(1) INFIMUM record offset:99 heapno:0 n_owned 1,delflag:N minflag:0 rectype:2
(2) normal record offset:126 heapno:2 n_owned 0,delflag:N minflag:0 rectype:0
(3) normal record offset:159 heapno:3 n_owned 0,delflag:N minflag:0 rectype:0
(4) normal record offset:192 heapno:4 n_owned 0,delflag:N minflag:0 rectype:0
(5) SUPREMUM record offset:112 heapno:1 n_owned 4,delflag:N minflag:0 rectype:3
-----Total used rows:5 used rows list(phy):
(1) INFIMUM record offset:99 heapno:0 n_owned 1,delflag:N minflag:0 rectype:2
(2) SUPREMUM record offset:112 heapno:1 n_owned 4,delflag:N minflag:0 rectype:3
(3) normal record offset:126 heapno:2 n_owned 0,delflag:N minflag:0 rectype:0
(4) normal record offset:159 heapno:3 n_owned 0,delflag:N minflag:0 rectype:0
(5) normal record offset:192 heapno:4 n_owned 0,delflag:N minflag:0 rectype:0
-----Total del rows:0 del rows list(logic):
-----Total slot:2 slot list:
(1) SUPREMUM slot offset:112 n_owned:4
(2) INFIMUM slot offset:99 n_owned:1

详细的解释:http://blog.itpub.net/7728585/viewspace-2145616/

使用inno对比:

[root@dba-test-02 inno_space-main]# ./inno  -f /data/mysql3307/data/musk/t.ibd   -p 3 -c show-records
File path /data/mysql3307/data/musk/t.ibd path, page num 3
==========================block==========================
FIL Header:
CheckSum: 984458749
Page number: 3
Previous Page: 4294967295
Next Page: 4294967295
Page LSN: 23747828697
Page Type: 17855
Flush LSN: 0

Index Header
Number of Directory Slots: 2
Garbage Space: 0
Number of Records: 3
Max Trx id: 0
Page level: 0
Index ID: 246
infimum 99
supremum 112
heap no 0
rec status 2
heap no 2
rec status 0
heap no 3
rec status 0
heap no 4
rec status 0
heap no 1
rec status 3

Free space

Page directory

slot list,管理对应的数据,同上面的o_owner -----Total slot:2 slot list
在这里插入图片描述
上面的page directory的一个数组记录了每个slot的偏移量

file trailer(8)

同header ,主要进行checksum

行长度的计算:

在这里插入图片描述
可以看到第一行记录的:33B
计算如下:
固定长度头的6B = 2=1B +1B(1 char field) ((4+4)/8)+ ((13+3)/8)
为空的bitmap 1B 上面见的表有两个可为null的字段,故 需要1bits ,使用一个大B
可变长度 2B 每个可变长度至少1B,如果超过255字节,则需要2B
主键: 4B int类型 4B
db_trx_id. 6B
db_roll_ptr. 7B

6(header) + 6(db_trx_id) + 7(db_roll_ptr) +(4)+(10) =33
发现和上图的不一致,不知道为什么,版本的差异??

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-01-12 00:04:28  更:2022-01-12 00:05:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:26:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码