INNODB_SYS_TABLES
テーブルは、InnoDB
データディクショナリ内の SYS_TABLES
テーブルの情報と同等の、InnoDB
テーブルに関するメタデータを提供します。
関連する使用法と使用例については、セクション14.14.3「InnoDB INFORMATION_SCHEMA システムテーブル」を参照してください。
表 21.7 INNODB_SYS_TABLES のカラム
カラム名 | 説明 |
---|---|
TABLE_ID |
インスタンスのすべてのデータベースで一意の各 InnoDB テーブルの識別子。 |
NAME |
テーブルの名前。test/t1 のように、必要に応じてデータベース名が前に置かれます。InnoDB システムテーブル名はすべて大文字です。データベースおよびユーザーテーブルの名前の大文字/小文字は、もともと定義されていたものと同じで、lower_case_table_names 設定による影響を受ける可能性があります。 |
FLAG |
この値は、行フォーマット、圧縮ページサイズ (該当する場合)、DATA DIRECTORY 句の CREATE TABLE または ALTER TABLE での使用の有無などのテーブルフォーマットおよびストレージ特性に関するビットレベル情報を提供します。 |
N_COLS |
テーブル内のカラムの数。レポートされる数値には、InnoDB によって作成される 3 つの非表示カラム (DB_ROW_ID 、DB_TRX_ID 、DB_ROLL_PTR ) が含まれます。 |
SPACE |
テーブルが存在するテーブルスペースの識別子。0 は InnoDB システムテーブルスペースを示します。ほかの数値はすべて、個別の .ibd ファイルを使用して file-per-table モードで作成されたテーブルを表します。この識別子は、TRUNCATE TABLE ステートメントのあとでも同じままです。ゼロ以外の値では、この識別子は、このインスタンス内のすべてのデータベース間のテーブルで一意です。 |
FILE_FORMAT |
テーブルのファイル形式 (Antelope または Barracuda)。 |
ROW_FORMAT |
テーブルの行フォーマット (Compact、Redundant、Dynamic、または Compressed)。 |
ZIP_PAGE_SIZE |
Zip ページサイズ。Compressed 行フォーマットを使用するテーブルにのみ適用されます。 |
例:
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE TABLE_ID = 74 \G
*************************** 1. row ***************************
TABLE_ID: 74
NAME: test/t1
FLAG: 1
N_COLS: 6
SPACE: 60
FILE_FORMAT: Antelope
ROW_FORMAT: Compact
ZIP_PAGE_SIZE: 0
1 row in set (0.00 sec)
注:
DESCRIBE
またはSHOW COLUMNS
を使用して、データ型とデフォルト値を含む、このテーブルのカラムに関する追加情報を表示します。このテーブルをクエリーするには
PROCESS
権限が必要です。
INNODB_SYS_TABLES.FLAG カラム値の解釈
INNODB_SYS_TABLES.FLAG
カラムは、テーブルのフォーマットおよびストレージ特性に関するビットレベル情報を提供します。次の表に示された該当する 10 進数値を一緒に付加すると、FLAG
カラム値を解釈できます。
表 21.8 INNODB_SYS_TABLES FLAG カラムデータを解釈するためのビット位置値
ビット位置 | 説明 | 10 進数値 |
---|---|---|
0 | 行フォーマットが REDUNDANT でない場合、このビットが設定されます。つまり、行フォーマットが COMPACT 、DYNAMIC 、または COMPRESSED の場合に設定されます。 |
|
1-4 | これらの 4 つのビットには、テーブルの圧縮されたページサイズを表す小さな数値が含まれます。INNODB_SYS_TABLES.ZIP_PAGE_SIZE フィールドにも、該当する場合、圧縮されたページサイズがレポートされます。 |
|
5 | 行フォーマットが DYNAMIC または COMPRESSED の場合、このビットが設定されます。 |
|
6 |
CREATE TABLE または ALTER TABLE で DATA DIRECTORY オプションが使用された場合、このビットが設定されます。デフォルトのデータディレクトリ (datadir ) 以外のディレクトリに置かれた file-per-table テーブルスペースに、このビットが設定されます。これらのテーブルについては、 ファイルは ファイルと同じ場所に存在します。 ファイルには、 file-per-table テーブルスペースファイルへの実際のディレクトリパスが格納されます。 |
|
次のテーブル t1
では ROW_FORMAT=DYNAMIC
を使用し、FLAG
値は 33 です。前述の表の情報に従うと、DYNAMIC
行フォーマットのテーブルでビット位置 0 が 1 に、ビット位置 5 が 32 に設定されることがわかります。これらの値は合計 33 の FLAG
値になります。
mysql> use test;
Database changed
mysql> SET GLOBAL innodb_file_format=Barracuda;
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE TABLE t1 (c1 int) ROW_FORMAT=DYNAMIC;
Query OK, 0 rows affected (0.02 sec)
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE 'test/t1' \G
*************************** 1. row ***************************
TABLE_ID: 89
NAME: test/t1
FLAG: 33
N_COLS: 4
SPACE: 75
FILE_FORMAT: Barracuda
ROW_FORMAT: Dynamic
ZIP_PAGE_SIZE: 0
1 row in set (0.01 sec)