Documentation Home
MySQL 8.0 参考手册  / 第 15 章 InnoDB 存储引擎  / 15.17 InnoDB 监视器  /  14.17.4 InnoDB 表空间监视器输出

14.17.4 InnoDB 表空间监视器输出

笔记

InnoDB空间监视器已弃用,可能会在未来的版本中删除。

InnoDB空间监视器打印有关共享表空间中文件段的信息并验证表空间分配数据结构。表空间监视器不描述使用该 innodb_file_per_table选项创建的每个表的文件表空间。

示例InnoDB表空间监视器输出:

================================================
090408 21:28:09 INNODB TABLESPACE MONITOR OUTPUT
================================================
FILE SPACE INFO: id 0
size 13440, free limit 3136, free extents 28
not full frag extents 2: used pages 78, full frag extents 3
first seg id not used 0 23845
SEGMENT id 0 1 space 0; page 2; res 96 used 46; full ext 0
fragm pages 32; free extents 0; not full extents 1: pages 14
SEGMENT id 0 2 space 0; page 2; res 1 used 1; full ext 0
fragm pages 1; free extents 0; not full extents 0: pages 0
SEGMENT id 0 3 space 0; page 2; res 1 used 1; full ext 0
fragm pages 1; free extents 0; not full extents 0: pages 0
...
SEGMENT id 0 15 space 0; page 2; res 160 used 160; full ext 2
fragm pages 32; free extents 0; not full extents 0: pages 0
SEGMENT id 0 488 space 0; page 2; res 1 used 1; full ext 0
fragm pages 1; free extents 0; not full extents 0: pages 0
SEGMENT id 0 17 space 0; page 2; res 1 used 1; full ext 0
fragm pages 1; free extents 0; not full extents 0: pages 0
...
SEGMENT id 0 171 space 0; page 2; res 592 used 481; full ext 7
fragm pages 16; free extents 0; not full extents 2: pages 17
SEGMENT id 0 172 space 0; page 2; res 1 used 1; full ext 0
fragm pages 1; free extents 0; not full extents 0: pages 0
SEGMENT id 0 173 space 0; page 2; res 96 used 44; full ext 0
fragm pages 32; free extents 0; not full extents 1: pages 12
...
SEGMENT id 0 601 space 0; page 2; res 1 used 1; full ext 0
fragm pages 1; free extents 0; not full extents 0: pages 0
NUMBER of file segments: 73
Validating tablespace
Validation ok
---------------------------------------
END OF INNODB TABLESPACE MONITOR OUTPUT
=======================================

表空间监视器输出包括有关整个共享表空间的信息,后跟一个列表,其中包含表空间内每个段的细分。

在这个使用默认 页面大小的示例中,表空间由每个 16KB 的数据库页面组成。这些页面被分组为大小为 1MB 的范围(64 个连续页面)。

显示整体表空间信息的输出的初始部分具有以下格式:

FILE SPACE INFO: id 0
size 13440, free limit 3136, free extents 28
not full frag extents 2: used pages 78, full frag extents 3
first seg id not used 0 23845

总体表空间信息包括以下值:

  • id

    表空间 ID。值 0 表示共享表空间。

  • size

    当前表空间大小(以页为单位)。

  • free limit

    空闲列表尚未初始化的最小页码。达到或超过此限制的页面是免费的。

  • free extents

    空闲区的数量。

  • not full frag extents,used pages

    未完全填充的片段区数,以及这些区中已分配的页数。

  • full frag extents

    完全完整的片段范围的数量。

  • first seg id not used

    第一个未使用的段 ID。

单个段信息具有以下格式:

SEGMENT id 0 15 space 0; page 2; res 160 used 160; full ext 2
fragm pages 32; free extents 0; not full extents 0: pages 0

段信息包括以下值:

  • id:

    段 ID。

  • space,page

    段“ inode 所在的表空间内的表空间编号和页。表空间编号 0 表示共享表空间。 InnoDB使用 inode 来跟踪表空间中的段。为段显示的其他字段(idres等)源自 inode 中的信息。

  • res

    为段分配(保留)的页数。

  • used

    段使用的已分配页数。

  • full ext

    为完全使用的段分配的盘区数。

  • fragm pages

    已分配给该段的初始页数。

  • free extents

    为完全未使用的段分配的盘区数。

  • not full extents

    为部分使用的段分配的盘区数。

  • pages

    在非完整范围内使用的页数。

当段增长时,它从单页开始,并 InnoDB一次为其分配第一页,最多 32 页(这是fragm pages 值)。之后,InnoDB分配完整的范围。InnoDB一次最多可以将 4 个 extent 添加到一个大段中,以确保数据的良好顺序性。

对于前面显示的示例段,它有 32 个片段页,加上 2 个完整范围(每个 64 页),在分配的 160 个页面中总共使用了 160 个页面。以下段有 32 个片段页和一个部分完整范围使用 14 页,在分配的 96 页中总共使用了 46 页:

SEGMENT id 0 1 space 0; page 2; res 96 used 46; full ext 0
fragm pages 32; free extents 0; not full extents 1: pages 14

如果某些单独的页面在扩展分配后被释放,则分配给扩展扩展的段的fragm pages值可能小于 32。