跳转到内容

第 7 章 存储管理

存储介质

阅读下面的参考资料

存储引擎

要求:

  • 下面的操作都在 st 数据库中进行
  • 查看 MySQL 支持哪些存储引擎
  • 查看 northwind.employees 使用的存储引擎
  • 查看 MySQL 默认的存储引擎
  • .
  • 创建 tb_eng 表,属性为 id int, name varchar(20)
  • 查看 tb_eng 表使用的存储引擎,是否为默认的存储引擎
  • 修改 tb_eng 表的存储引擎为 myisam
  • 查看 tb_eng 表的存储引擎,确认是否修改成功
  • .
  • 创建 tb_mem 表,属性为 id int, name varchar(20),使用 memory 存储引擎
  • 查看 tb_mem 的存储引擎
  • 在 tb_mem 中插入两条记录
  • 通过 select 语句查看 tb_mem 表的数据
  • 在文件系统下查看 tb_mem 表的数据
  • 重启 mysqld 服务,通过 select 语句查看 tb_mem 表的数据
  • .
  • 创建 tb_csv 表,属性为 id int, name varchar(20),使用 csv 存储引擎
  • 查看 tb_csv 的存储引擎
  • 在 tb_csv 中插入两条记录
  • 通过 select 语句查看 tb_csv 表的数据
  • 在文件系统下查看 tb_csv 表的数据

innodb_ruby 软件

  • 按照下面的步骤安装 innodb_ruby 软件,# 后面是注释文字
  • innodb_ruby 软件的使用方法,参考 innodb_ruby 教程
Terminal window
# 查看 ruby 版本应该 >= 2.7
ruby -v
# 查看 gem 的版本,应该 >= 3.1.6
gem -v
# 切换到 root 账户
su
# 输入 root 密码
# 安装 innodb_ruby 工具
gem install innodb_ruby
# 确保工具能正常工作
innodb_space --help

存储结构

行结构

要求:

  • 查看 MySQL 默认的行格式
  • 查看 northwind.employees 表的行格式
  • 创建 tb_rf 表,属性为 id int, name varchar(20)
  • 查看表 tb_rf 的行格式,是否为默认的行格式
  • 修改 tb_rf 表的行格式为 compact 行格式
  • 查看 tb_rf 表的行格式,确认修改成功
  • .
  • 创建 tb_cmpt 表,属性如下,行格式为 compact,字符集为 latin1
    • col1 varchar(10)
    • col2 varchar(10)
    • col3 char(10)
    • col4 varchar(10)
  • 在 tb_cmpt 表中插入两行记录,内容如下
    • (‘a’, ‘bb’, ‘ccc’, ‘dddd’)
    • (‘e’, null, ‘fff’, null)
  • 查看数据库文件的行格式,xxd /var/lib/mysql/st/tb_cmpt.ibd | less
  • 搜索 dddd 定位到第一条记录
  • 分析两条记录的行格式,包括
    • 变长长度字段列表
    • NULL 值列表
    • 记录头信息
    • 隐藏列值
    • 真实列值

页结构

要求:

  • 查看 MySQL 默认的页尺寸
  • 切换到用户表空间路径,cd /var/lib/mysql/st
  • 查看用户表空间中各种页的类型,innodb_space -f tb_cmpt.ibd space-summary
  • 图形方式查看索引页的结构,innodb_space -f tb_cmpt.ibd -p 3 page-illustrate
  • 查看索引页的结构信息:innodb_space -f tb_cmpt.ibd -p 3 page-dump

表空间

要求:

  • 查看系统表空间和临时表空间的路径
  • 查看使用系统表空间还是用户表空间(独立表空间)