第 7 章 存储管理
存储介质
阅读下面的参考资料
- Cache 内存和寄存器的桥梁
- 计算机组成原理之 SRAM 与 DRAM 的存储元原理讲解
- 内存芯片工作原理
- 内存是如何工作的
- 机械硬盘的工作原理
- 机械硬盘的组成结构
- 闪存的工作原理
- SSD 固态硬盘工作原理
存储引擎
要求:
- 下面的操作都在
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 教程
存储结构
行结构
要求:
- 查看 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
表空间
要求:
- 查看系统表空间和临时表空间的路径
- 查看使用系统表空间还是用户表空间(独立表空间)