Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  INFORMATION_SCHEMA INNODB_SYS_TABLESPACES テーブル

21.29.15 INFORMATION_SCHEMA INNODB_SYS_TABLESPACES テーブル

INNODB_SYS_TABLESPACES テーブルは、InnoDB データディクショナリの SYS_TABLESPACES テーブル内の情報と同等の、InnoDB テーブルスペースに関するメタデータを提供します。

関連する使用法と使用例については、セクション14.14.3「InnoDB INFORMATION_SCHEMA システムテーブル」を参照してください。

表 21.16 INNODB_SYS_TABLESPACES のカラム

カラム名 説明
SPACE テーブルスペースのスペース ID。
NAME データベースおよびテーブル名 (たとえば world_innodb\city)
FLAG この値は、テーブルスペースの形式とストレージ特性に関するビットレベルの情報を提供します。
FILE_FORMAT テーブルスペースファイル形式 (たとえば AntelopeBarracuda)。このフィールドのデータは、.ibd ファイル内に存在するテーブルスペースフラグ情報から解釈されます。InnoDB ファイル形式の詳細は、セクション14.8「InnoDB のファイル形式管理」を参照してください。
ROW_FORMAT テーブルスペースの行フォーマット (Compact または Redundant、Dynamic、Compressed)。このフィールドのデータは、.ibd ファイル内に存在するテーブルスペースフラグ情報から解釈されます。
PAGE_SIZE テーブルスペースのページサイズ。このフィールドのデータは、.ibd ファイル内に存在するテーブルスペースフラグ情報から解釈されます。
ZIP_PAGE_SIZE テーブルスペースの Zip ページサイズ。このフィールドのデータは、.ibd ファイル内に存在するテーブルスペースフラグ情報から解釈されます。

:

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES WHERE SPACE = 57 \G
*************************** 1. row ***************************
        SPACE: 57
         NAME: test/t1
         FLAG: 0
  FILE_FORMAT: Antelope
   ROW_FORMAT: Compact or Redundant
    PAGE_SIZE: 16384
ZIP_PAGE_SIZE: 0
1 row in set (0.00 sec)

:

  • DESCRIBE または SHOW COLUMNS を使用して、データ型とデフォルト値を含む、このテーブルのカラムに関する追加情報を表示します。

  • このテーブルをクエリーするには PROCESS 権限が必要です。

  • すべての Antelope ファイル形式のテーブルスペースフラグは (テーブルフラグとは異なり) 常にゼロなので、テーブルスペースの行フォーマットが Redundant または Compact であるかをこのフラグ整数から判断することはできません。この結果、ROW_FORMAT フィールドに指定可能な値は、Compact または RedundantCompressedDynamic になります。

INNODB_SYS_TABLESPACES.FLAG カラム値の解釈:

INNODB_SYS_TABLESPACES.FLAG カラムは、テーブルスペースの形式およびストレージ特性に関するビットレベルの情報を提供します。

MySQL 5.6 までは、テーブルフラグとテーブルスペースフラグはビット位置 0 の設定を除き同じでした。MySQL 5.6 では、論理ページサイズを保持するために追加の 4 ビットを必要とする、4K および 8K ページのサポートが追加されました。MySQL 5.6 ではまた、CREATE TABLE および ALTER TABLE DATA DIRECTORY 句のサポートが追加され、MySQL データディレクトリ外の場所に file-per-table テーブルスペースを格納できるようになりました。この機能には、テーブルフラグとテーブルスペースフラグの両方に追加ビットが必要でしたが、位置は同じではありません。

次の表に示された該当する 10 進数値を一緒に付加すると、テーブルスペース FLAG カラム値を解釈できます。

表 21.17 INNODB_SYS_TABLESPACES FLAG カラムデータを解釈するためのビット位置値

ビット位置 説明 10 進数値
0 テーブルスペース内のテーブルの行フォーマットが DYNAMIC または COMPRESSED の場合、このビットが設定されます。この情報を使用して、Antelope ファイル形式と Barracuda ファイル形式を区別できますが、REDUNDANT ファイル形式と COMPACT ファイル形式は区別できません (DYNAMIC 行フォーマットと COMPRESSED 行フォーマットには Barracuda ファイル形式が必要です)。file-per-table テーブルスペースである場合、INNODB_SYS_TABLES をクエリーして、2 つの Antelope 行フォーマット (REDUNDANT または COMPACT) のどちらが使用されているかを判断する必要があります。
  • 0 - REDUNDANT または COMPACT (FILE_FORMAT=Antelope)

  • 1 - DYNAMIC または COMPRESSED (FILE_FORMAT=Barracuda)

1-4 これらの 4 つのビットには、テーブルスペースの圧縮されたページサイズ (KEY_BLOCK_SIZE または物理的なブロックサイズ) を表す小さな数字が含まれます。
  • 0 - 圧縮なし

  • 2 - 1024 バイトの圧縮ページサイズ

  • 4 - 2048 バイトの圧縮ページサイズ

  • 6 - 4096 バイトの圧縮ページサイズ

  • 8 - 8192 バイトの圧縮ページサイズ

  • 10 - 16384 バイトの圧縮ページサイズ

5 テーブルの行フォーマットが DYNAMIC または COMPRESSED である場合に、file-per-table テーブルスペースにこのビットが設定されます。
  • 0 - REDUNDANT または COMPACT

  • 32 - DYNAMIC または COMPRESSED

6-9 これらの 4 つのビットには、テーブルスペースの圧縮解除されたページサイズ (論理ページサイズ) を表す小さな数字が含まれます。論理ページサイズが 16K の元の InnoDB デフォルトページサイズである場合、この設定はゼロです。
  • 192 - 4096 バイトの論理/非圧縮ページサイズ

  • 256 - 8192 バイトの論理/非圧縮ページサイズ

  • 0 - 16384 バイトの論理/非圧縮ページサイズ

10 CREATE TABLE または ALTER TABLEDATA DIRECTORY オプションが使用された場合、このビットが設定されます。デフォルトのデータディレクトリ (datadir) 以外のディレクトリに置かれた file-per-table テーブルスペースに、このビットが設定されます。これらのテーブルについては、tablename.isl ファイルは tablename.frm ファイルと同じ場所に存在します。tablename.isl ファイルには、tablename.ibd file-per-table テーブルスペースファイルへの実際のディレクトリパスが格納されます。
  • 0 - リモートの file-per-table テーブルスペースではない場合

  • 1024 - リモートの file-per-table テーブルスペース


次の例では、テーブル t1innodb_file_per_table=ON で作成されます。これはテーブル t1 を独自のテーブルスペース内に作成します。INNODB_SYS_TABLESPACES をクエリーすると、テーブルスペースの FLAG 値が 33 であることがわかります。どのようにこの値になるかを判断するには、前述の表に記されているビット値を参照してください。テーブル t1DYNAMIC 行フォーマットを使用するので、ビット 0 は 1 の値になります。テーブルスペースが DYNAMIC 行フォーマットを使用する file-per-table テーブルスペースなので、ビット 5 は 32 の値になります。innodb_page_size はデフォルトの 16K 値に設定されているので、ビット位置 6-9 は 0 です。ほかのビット値は適用できないため 0 に設定されます。ビット位置 0 とビット位置 5 の値は合計して 33 の FLAG 値になります。

mysql> use test;
Database changed

mysql> SHOW VARIABLES LIKE 'innodb_file_per_table';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | ON    |
+-----------------------+-------+
1 row in set (0.00 sec)

mysql> SHOW VARIABLES LIKE 'innodb_page_size';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| innodb_page_size | 16384 |
+------------------+-------+
1 row in set (0.00 sec)

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_TABLESPACES WHERE NAME LIKE 'test/t1' \G
*************************** 1. row ***************************
        SPACE: 75
         NAME: test/t1
         FLAG: 33
  FILE_FORMAT: Barracuda
   ROW_FORMAT: Dynamic
    PAGE_SIZE: 16384
ZIP_PAGE_SIZE: 0
1 row in set (0.00 sec)

User Comments
Sign Up Login You must be logged in to post a comment.