文档:https://github.com/jeremycole/innodb_ruby/wiki
以Ubuntu系统为例
apt install ruby
sudo gem install innodb_ruby
安装过程异常问题
gem install rake
apt install ruby-dev
innodb_ruby提供了innodb_space
命令,可查看空间文件结构、页结构、索引结构等等等等…
可执行innodb_space --help
查看命令帮助。
innodb_space <options> <mode>
Option | Parameters | Description | Desc_zh |
---|---|---|---|
-s | <filename> | Load the system tablespace file (e.g. ibdata1); | 指定系统表空间文件 |
-T | <table name> | Use the given table name. | 指定表名 |
-I (i 的大写) | <index name> | Use the given index name. | 指定索引名 |
-f | <filename> | Load the tablespace file (system or table). | 指定表空间文件 |
-p | <pagenum> | 指定页码 | |
-R | <offset> | 指定记录偏移量 | |
-l (L 的小写) | <level> | 指定级别 |
Innodb存储概念:表空间
(系统表空间、独立表空间) > 区
(区段) > 页
(页面)
列出系统中所有可用的表空间,包括一些基本统计信息。
innodb_space -s ibdata1 system-spaces
列出空间中可用的所有索引(系统空间或独立表空间的文件):
innodb_space -s ibdata1 -T sakila/film space-indexes
遍历空间中的所有页面,并打印合并到相同类型页面的“区域”中的页面类型摘要:
innodb_space -s ibdata1 -T sakila/film space-page-type-regions
遍历所有页面并按类型打印总页数的摘要:
innodb_space -s ibdata1 -T sakila/film space-page-type-summary
展示空间中所有区段内的所有页面,为每个页面显示一个着色块(按索引/用途着色),根据页面中的数据量调整大小:
innodb_space -s ibdata1 -T sakila/film space-extents-illustrate
展示空间中所有区段内的所有页面,显示一个彩色块(按页面修改 LSN 的年龄着色):
innodb_space -s ibdata1 -T sakila/payment space-lsn-age-illustrate
给定任何页码,展示该页的用途(对于大多数结构):
innodb_space -s ibdata1 -T sakila/film -p 3 page-account
智能转储页面内容,包括 innodb_ruby 理解的大多数结构的表示:
innodb_space -s ibdata1 -T sakila/film -p 3 page-dump
汇总页面中的所有记录:
innodb_space -s ibdata1 -T sakila/film -p 3 page-records
转储页面目录的内容:
innodb_space -s ibdata1 -T sakila/film -p 7 page-directory-summary
说明页面内容:
innodb_space -s ibdata1 -T sakila/film -p 7 page-illustrate
通过跟踪整个 B+Tree(通过递归扫描所有页面,而不仅仅是通过列表扫描叶子页面)来递归索引(执行完整索引扫描):
innodb_space -s ibdata1 -T sakila/film -I PRIMARY index-recurse
像 index-recurse 一样递归索引,但打印索引页中每条记录的偏移量:
innodb_space -s ibdata1 -T sakila/film -I PRIMARY index-record-offsets
打印给定级别的所有索引页的摘要:
innodb_space -s ibdata1 -T sakila/film -I PRIMARY -l 0 index-level-summary
给定记录偏移量,转储记录及其包含的数据的详细描述:
innodb_space -s ibdata1 -T sakila/film -p 7 -R 128 record-dump
总结记录的历史记录(撤消日志):
innodb_space -s ibdata1 -T sakila/film -p 7 -R 128 record-history
…
mysql> show variables like 'datadir%';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| datadir | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.00 sec)
cd /var/lib/mysql/
innodb_space -s ibdata1 -T test/record_format_demo space-page-type-regions
innodb_space -s ibdata1 -T test/record_format_demo -p 3 page-records
reference:
https://blog.csdn.net/weixin_34368949/article/details/91381989