前言
这个教程基于我的个人理解和实践,所以请大家多多指教。错误之处,欢迎评论指出,方便大家也能参考.有时间的话我也很乐意及时的进行改正。如果教程中有表述不清楚的地方,也请指出,或提供建议。
背景
花了较长时间看完了《MySQL必知必会》,然后开始看《MySQL 是怎样运行的:从根儿上理解 MySQL》,看到大概第四章的时候,感觉不太容易读下去,前面读后面忘,所以在想,是不是自己的方式不太对,所以就重新读了下第0章(这个0很舒服,到底是程序员作者写的书)!然后看到作者有推荐一个工具,之前阅读时也看到了这个工具,但是因为只是唰唰往下读,所以懒得操作,但是我这一次我决定还是拿起来尝试下,作者推荐的,应该还是不错的,毕竟这本小册的风评很好!
安装时也搜索了一些教程,因为大多数是linux环境的,我不是mac电脑,也懒得在虚拟机上搞,所以直接照猫画虎使用windows试了一下,还是比较容易的,花了会儿时间安装成功了,所以分享给大家!
本机环境
win10 x64
MySQL 5.7
navicat
开始安装
步骤一:Ruby安装包的下载
首先参考www.runoob.com/ruby/ruby-i...
然后跳转rubyinstaller.org/downloads/ 如下所示:
关于图中WITH DEVKIT的THOUT DEVKIT的区别就是是否安装构建编译等工具包,我是单纯为了使用工具,所以选择Ryby 3.2.3.1(x64):
步骤二:Ruby的安装
双击下载好的rubyinstaller-3.2.3-1-x64.exe进行安装(可能需要等待一些时间),我选择默认路径进行安装,免去了配置环境变量等操作:
等待安装完成后,在cmd窗口执行ruby -v
来验证是否安装成功:
bash
C:\ProgramData\MySQL\MySQL Server 5.7\Data>ruby -v
ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [x64-mingw-ucrt]
安装成功后,接下来准备安装工具:innodb_ruby了!
步骤三:innodb_ruby的安装
继续在窗口中执行命令gem install innodb_ruby
:
步骤四:验证是否安装成功
安装完毕可以查看帮助:
ruby
C:\ProgramData\MySQL\MySQL Server 5.7\Data>innodb_space --help
Usage: innodb_space <options> <mode>
...
...
...
出现以上就表示工具安装成功了!
使用
关于此部分我参考了一下zhuanlan.zhihu.com/p/367708354 的2.2部分,因为这个是Linux环境,所以我问了下AI:
linux中mysql的/usr/local/mysql/data/路径对应到windows是在哪里?
根据回答找到我本地的路径(大家自己的请参考自己的路径即可):
C:\ProgramData\MySQL\MySQL Server 5.7\Data
然后在此目录执行CMD,输入命令innodb_space -s ibdata1 system-spaces
分析MySQL InnoDB存储引擎中名为 ibdata1
的表空间文件的系统表空间信息
ruby
C:\ProgramData\MySQL\MySQL Server 5.7\Data>innodb_space -s ibdata1 system-spaces
name pages indexes
(system) 25344 7
test34@dev/dev_testa7 2
test34@dev/dev_testb6 1
test34@dev/dev_testc6 1
test34@dev/dev_testd7 2
test34@dev/dev_teste7 2
test34@dev/dev_testf19 2
test34@dev/dev_testg7 2
test34@dev/dev_testh7 2
test34@dev/dev_testi9 2
test34@dev/dev_testj7 2
test34@dev/dev_testk0 2
具体说明如下:
innodb_space
是基于Ruby的innodb_ruby工具的一个功能模块,用于解析和展示InnoDB表空间的详细内容。-s ibdata1
参数指定了要分析的InnoDB表空间文件,ibdata1
是MySQL默认的共享表空间文件,存储了系统表、用户数据、索引等信息。system-spaces
是该工具的一个子命令选项,执行后会展示ibdata1
文件中所有系统表空间的详细信息,包括但不限于表空间ID、名称以及占用的空间大小等元数据。
感谢您耐心阅读至此,如果本文对您有所启发或帮助,欢迎点赞支持,这将是我持续分享的动力。