Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
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
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.