space:表空间,管理segment和page
segment:段,管理extent
extent:区,管理page
page:页,最小存储单元,默认16KB
parseibd默认page采用16KB大小,可通过变量innodb_page_size查看,并且表空间都是独立文件,可通过变量innodb_file_per_table查看
git clone https://github.com/jemuelmiao/parseibd.git
cd parseibd
./build.sh
cd cmd
./parseibd -h {mysql地址} -u {用户名} -p {密码} -d {数据库名} -t {表名} -f {ibd文件路径}
结果文件存放在output目录中
btree_xxx:索引btree page关系,可以方便查看btree的层级及page之间的连接关系
extents:全局extent列表,包括:空闲列表、部分使用列表、全部使用列表,由首页page fsp管理
inodes:全局page inode列表,包括:部分使用列表、全部使用列表,由首页page fsp管理
pages:所有page的编号、类型
rec_xxx:索引记录,包括:聚簇索引非叶子记录、聚簇索引叶子记录、二级索引非叶子记录、二级索引叶子记录
segments:所有page inode管理的segment列表及segment管理的extent列表
表结构
输出结果文件
- btree_card_id
- btree_id
- extents
- inodes
- pages
- rec_card_id
- rec_id
- segments
- 解析数据字典、frm文件,去掉连接mysql读取元数据的依赖
- 部分不常用的数据类型解析,如point、geometry等
- 前端可视化展示结果