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 =======================================
テーブル領域モニターの出力には、全体としての共有テーブル領域に関する情報と、テーブル領域内の各セグメントの詳細情報を含むリストが含まれます。
テーブル領域は、デフォルトサイズが 16 K バイトのデータベースページで構成されます。これらのページは、64 個の連続するページから成るサイズ 1M バイトのエクステントにグループ化されます。
テーブル領域全体の情報が表示される出力の先頭部分の形式は、次のとおりです。
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
:
テーブル領域の番号と、このセグメントの
「i ノード」
が格納されているテーブル領域内のページ。テーブル領域番号
0
は共有テーブル領域を示します。InnoDB
は i
ノードを使ってテーブル領域内のセグメントの追跡を行います。あるセグメントで表示されるその他のフィールド
(id
や
res
など) は、i
ノードの情報から派生したものです。
res
:
このセグメントの割り当て済み (予約済み)
ページ数。
used
:
このセグメントで使用中の割り当て済みページ数。
full ext
:
このセグメントに割り当てられたエクステントのうち、完全に使用されているものの数。
fragm pages
:
このセグメントに割り当てられた初期ページ数。
free extents
:
このセグメントに割り当てられたエクステントのうち、完全に未使用なものの数。
not full extents
:
このセグメントに割り当てられたエクステントのうち、一部使用されているものの数。
pages
:
いっぱいになっていないエクステント内で使用されているページ数。
セグメントのサイズが増加していく際には、まず単一のページとして開始され、InnoDB
は最初のページが 32 ページ (これが
fragm pages
の値)
になるまで個別に割り当てます。その後、InnoDB
は 64
ページから成る完全なエクステントを割り当てます。InnoDB
ではデータの連続性を高めるため、大規模なセグメントには一度に最大
4 つのエクステントを追加できます。
前出のセグメント例では、32 個のフラグメントページと 2 個のいっぱいになったエクステント (それぞれ 64 ページずつ) の合計 160 ページが使用中 (割り当て済みは 160 ページ) となっています。次のセグメントでは、32 個のフラグメントページと、14 ページを使用している 1 個の一部いっぱいになったエクステントとの合計 46 ページが使用中 (割り当て済みは 96 ページ) となっています。
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
エクステントの割り当て後に個別ページの一部が割り当て解除された場合、エクステントの割り当てられたセグメントが
32 未満の fragm pages
値を持つ可能性があります。