無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 21 INFORMATION_SCHEMA データベース :: 21.21 INFORMATION_SCHEMA FILES テーブル
« 21.20 INFORMATION_SCHEMA EVENTS テーブル

21.22 INFORMATION_SCHEMA PROCESSLIST テーブル »
Section Navigation      [Toggle]
  • 21 INFORMATION_SCHEMA データベース
  • 21.1 INFORMATION_SCHEMA SCHEMATA テーブル
  • 21.2 INFORMATION_SCHEMA TABLES テーブル
  • 21.3 INFORMATION_SCHEMA COLUMNS テーブル
  • 21.4 INFORMATION_SCHEMA STATISTICS テーブル
  • 21.5 INFORMATION_SCHEMA USER_PRIVILEGES テーブル
  • 21.6 INFORMATION_SCHEMA SCHEMA_PRIVILEGES テーブル
  • 21.7 INFORMATION_SCHEMA TABLE_PRIVILEGES テーブル
  • 21.8 INFORMATION_SCHEMA COLUMN_PRIVILEGES テーブル
  • 21.9 INFORMATION_SCHEMA CHARACTER_SETS テーブル
  • 21.10 INFORMATION_SCHEMA COLLATIONS テーブル
  • 21.11 INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY テーブル
  • 21.12 INFORMATION_SCHEMA TABLE_CONSTRAINTS テーブル
  • 21.13 INFORMATION_SCHEMA KEY_COLUMN_USAGE テーブル
  • 21.14 INFORMATION_SCHEMA ROUTINES テーブル
  • 21.15 INFORMATION_SCHEMA VIEWS テーブル
  • 21.16 INFORMATION_SCHEMA TRIGGERS テーブル
  • 21.17 INFORMATION_SCHEMA PLUGINS テーブル
  • 21.18 INFORMATION_SCHEMA ENGINES テーブル
  • 21.19 INFORMATION_SCHEMA PARTITIONS テーブル
  • 21.20 INFORMATION_SCHEMA EVENTS テーブル
  • 21.21 INFORMATION_SCHEMA FILES テーブル
  • 21.22 INFORMATION_SCHEMA PROCESSLIST テーブル
  • 21.23 INFORMATION_SCHEMA REFERENTIAL_CONSTRAINTS テーブル
  • 21.24 INFORMATION_SCHEMA GLOBAL_STATUS および SESSION_STATUS テーブル
  • 21.25 INFORMATION_SCHEMA GLOBAL_VARIABLES および SESSION_VARIABLES テーブル
  • 21.26 その他の INFORMATION_SCHEMA テーブル
  • 21.27 SHOW ステートメントへの拡張

21.21. INFORMATION_SCHEMA FILES テーブル

FILES テーブルは MySQL NDB ディスクデータ テーブルが保存されるファイルに関する情報を提供します。

INFORMATION_SCHEMA 名 SHOW 名 備考
FILE_ID ? MySQL 拡張
FILE_NAME ? MySQL 拡張
FILE_TYPE ? MySQL 拡張
TABLESPACE_NAME ? MySQL 拡張
TABLE_CATALOG ? MySQL 拡張
TABLE_SCHEMA ? MySQL 拡張
TABLE_NAME ? MySQL 拡張
LOGFILE_GROUP_NAME ? MySQL 拡張
LOGFILE_GROUP_NUMBER ? MySQL 拡張
ENGINE ? MySQL 拡張
FULLTEXT_KEYS ? MySQL 拡張
DELETED_ROWS ? MySQL 拡張
UPDATE_COUNT ? MySQL 拡張
FREE_EXTENTS ? MySQL 拡張
TOTAL_EXTENTS ? MySQL 拡張
EXTENT_SIZE ? MySQL 拡張
INITIAL_SIZE ? MySQL 拡張
MAXIMUM_SIZE ? MySQL 拡張
AUTOEXTEND_SIZE ? MySQL 拡張
CREATION_TIME ? MySQL 拡張
LAST_UPDATE_TIME ? MySQL 拡張
LAST_ACCESS_TIME ? MySQL 拡張
RECOVER_TIME ? MySQL 拡張
TRANSACTION_COUNTER ? MySQL 拡張
VERSION ? MySQL 拡張
ROW_FORMAT ? MySQL 拡張
TABLE_ROWS ? MySQL 拡張
AVG_ROW_LENGTH ? MySQL 拡張
DATA_LENGTH ? MySQL 拡張
MAX_DATA_LENGTH ? MySQL 拡張
INDEX_LENGTH ? MySQL 拡張
DATA_FREE ? MySQL 拡張
CREATE_TIME ? MySQL 拡張
UPDATE_TIME ? MySQL 拡張
CHECK_TIME ? MySQL 拡張
CHECKSUM ? MySQL 拡張
STATUS ? MySQL 拡張
EXTRA ? MySQL 拡張

注:

  • FILE_ID カラムの値は自動生成されます。

  • FILE_NAME は CREATE LOGFILE GROUP あるいは ALTER LOGFILE GRUOP によって作成された UNDO ログファイルの名前です。または CREATE TABLESPACE あるいは ALTER TABLESPACE で作成されたデータファイルです。

  • FILE_TYPE は UNDOFILE あるいは DATAFILE のいずれかの値です。

  • TABLESPACE_NAME はファイルが関連付けられているテーブルスペースの名前です。

  • MySQL 5.1 では、TABLESPACE_CATALOG カラムの値は常に NULL です。

  • TABLE_NAME は関連するファイルがある場合にファイルに関連付けられたディスク データ テーブルの名前です。

  • LOGFILE_GROUP_NAME カラムはログファイルあるいはデータファイルが属すログファイルのグループに名前を付けます。

  • UNDO ログファイルでは、LOGFILE_GROUP_NUMBER はログファイルが属すログファイル グループの自動生成された ID を含みます。

  • MySQL クラスタ ディスクデータのログファイルあるいはデータファイルに対し、ENGINE カラムの値は常に NDB あるいは NDBCLUSTER になります。

  • MySQL クラスタ ディスク データのログファイルに対し、FULLTEXT_KEYS カラムの値は常に空です。

  • FREE EXTENTS カラムはファイルが使用していない拡張の番号を表示します。TOTAL EXTENTS カラムはファイルに割り当てられた拡張の総数を表示します。

    これらの 2 つのカラムの違いは現在ファイルが使用している拡張の数です。

    SELECT TOTAL_EXTENTS - FREE_EXTENTS AS extents_used
        FROM INFORMATION_SCHEMA.FILES
        WHERE FILE_NAME = 'myfile.dat';
    

    使用中のディスク容量を EXTENT_SIZE カラムの値によってこの違いを乗算したファイルによって最大化することができます。それによりファイルにバイトで拡張のサイズを与えます。

    SELECT (TOTAL_EXTENTS - FREE_EXTENTS) * EXTENT_SIZE AS bytes_used
        FROM INFORMATION_SCHEMA.FILES
        WHERE FILE_NAME = 'myfile.dat';    
    

    同様に、所定のファイルに残された利用できるスペースの容量を FREE_EXTENTS に EXTENT_SIZE 乗算することで予測できます。

    SELECT FREE_EXTENTS * EXTENT_SIZE AS bytes_free
        FROM INFORMATION_SCHEMA.FILES
        WHERE FILE_NAME = 'myfile.dat';    
    

    重要上記のクエリで生成されたバイトの値は概算のみで、その正確性は EXTENT_SIZE の値に逆比例します。つまり、EXTENT_SIZE が大きくなれば、概算の正確性は落ちます。

    拡張が一度使用されるとそれが属すデータファイルをドロップせずにはそれを自由に出来ないことを覚えておく必要があります。このことは、ディスクデータのテーブルからの削除はディスクスペースを増やさないということです。

    拡張サイズは CREATE TABLESPACE ステートメントで設定できます。詳細については、項12.1.10. 「CREATE TABLESPACE 構文」 をご参照してください。

  • INITIAL_SIZE カラムはファイルのサイズをバイトで表示します。これはファイルの作成に使用された CREATE LOGFILE GROUP、、ALTER LOGFILE GROUP、CREATE TABLESPACE、あるいは ALTER TABLESPACE の INITIAL_SIZE 節に使用された値と同じです。

    MySQL 5.1 クラスタ ディス クデータ ファイルでは、MAXIMUM_SIZE カラムの値は常に INITIAL_SIZE と同じで、 AUTOEXTEND_SIZE カラムは常に空です。

  • CREATION_TIME カラムはファイルが作成された日時を表示します。LAST_UPDATE_TIME カラムはファイルが最後に変更された日時を表示します。 LAST_ACCESSED カラムはファイルが最後にサーバーによってアクセスされた日時を表示します。

    現在は、これらのカラムの値はオペレーティング システムから知らされたものであり、NDB ストレージ エンジンにより供給されたものではありません。オペレーティング システムが何の値も提供していない場合には、これらのカラムには 0000-00-00 00:00:00が表示されます。

  • MySQL クラスタ ディスク データのファイルでは、RECOVER_TIME および TRANSACTION_COUNTER カラムは常に 0 です。

  • MySQL 5.1 クラスタ ディスク データ ファイルでは、以下のカラムは常に NULL です。

    • VERSION

    • ROW_FORMAT

    • TABLE_ROWS

    • AVG_ROW_LENGTH

    • DATA_LENGTH

    • MAX_DATA_LENGTH

    • INDEX_LENGTH

    • DATA_FREE

    • CREATE_TIME

    • UPDATE_TIME

    • CHECK_TIME

    • CHECKSUM

  • MySQLクラスタ ディスク データ ファイルでは、STATUS カラムの値は常に NORMAL です。

  • MySQL クラスタ ディスク データ ファイルでは、EXTRA カラムは、各データノードがファイルのコピーを持っているためどのデータノードにファイルが属すかを表示します。例えば、このステートメントを MySQL クラスタの 4 つのデータノードで使用するとします。

    CREATE LOGFILE GROUP mygroup
        ADD UNDOFILE 'new_undo.dat'
        INITIAL_SIZE 2G
        ENGINE NDB;
    

    CREATE LOGFILE GROUP ステートメントの実行を完了すると、FILES テーブルに対するこのクエリの以下の結果に類似した結果が表示されます。

    mysql> SELECT LOGFILE_GROUP_NAME, FILE_TYPE, EXTRA
        ->     FROM INFORMATION_SCHEMA.FILES
        ->     WHERE FILE_NAME = 'new_undo.dat';
    +--------------------+-------------+----------------+
    | LOGFILE_GROUP_NAME | FILE_TYPE   | EXTRA          |
    +--------------------+-------------+----------------+
    | mygroup            | UNDO FILE   | CLUSTER_NODE=3 |
    | mygroup            | UNDO FILE   | CLUSTER_NODE=4 |
    | mygroup            | UNDO FILE   | CLUSTER_NODE=5 |
    | mygroup            | UNDO FILE   | CLUSTER_NODE=6 |
    +--------------------+-------------+----------------+
    4 rows in set (0.01 sec)
    
  • FILES テーブルは非標準のテーブルです。それは MySQL 5.1.6 に追加されています。

  • MySQL 5.1.14 を開始すると、ログファイル グループの作成に続いて FILES テーブルに追加の行が表示されます。この行は FILE_NAME カラムの値に対して NULL です。というのはこの行に対し、FILE_ID カラムの値は常に 0 で、FILE_TYPE カラムは常に UNDO FILEで、STATUS カラムは常に NORMAL になります。MySQL 5.1 では、ENGINE カラムの値は常に ndbcluster です。

    この行は FREE_EXTENTS カラムで LOGFILE_GROUP_NAME および LOGFILE_GROUP_NUMBER カラムにそれぞれその名前と数が表示された所定のログファイル グループに属すすべての undo ファイルに利用できるフリー拡張の総数を表示します。

    MySQL クラスタに既存のログファイルが無いものとして、以下のステートメントを使用してログファイルを 1 つ作成するとします。

    mysql> CREATE LOGFILE GROUP lg1
        ->   ADD UNDOFILE 'undofile.dat'
        ->   INITIAL_SIZE = 16M
        ->   UNDO_BUFFER_SIZE = 1M
        ->   ENGINE = NDB;
    Query OK, 0 rows affected (3.81 sec)
    

    FILES テーブルにクエリすると NULL 行が表示されます。

    mysql> SELECT DISTINCT
        ->   FILE_NAME AS File,
        ->   FREE_EXTENTS AS Free,
        ->   TOTAL_EXTENTS AS Total,
        ->   EXTENT_SIZE AS Size,
        ->   INITIAL_SIZE AS Initial
        ->   FROM INFORMATION_SCHEMA.FILES;
    +--------------+---------+---------+------+----------+
    | File         | Free    | Total   | Size | Initial  |
    +--------------+---------+---------+------+----------+
    | undofile.dat |    NULL | 4194304 |    4 | 16777216 |
    | NULL         | 4184068 |    NULL |    4 |     NULL |
    +--------------+---------+---------+------+----------+
    2 rows in set (0.01 sec)
    

    undo ロギングに利用できるフリー拡張の総数は常にログファイルのすべての undo ファイルに対して undo ファイルを維持に必要なオーバーヘッドにより TOTAL_EXTENTS カラムの値の合計より幾分少なくなります。これはログファイル グループに 2 番目の undo ファイルを追加すると表示され、FILES テーブルに対して前のクエリを繰返します。

    mysql> ALTER LOGFILE GROUP lg1
        ->   ADD UNDOFILE 'undofile02.dat'
        ->   INITIAL_SIZE = 4M
        ->   ENGINE = NDB;
    Query OK, 0 rows affected (1.02 sec)
    
    mysql> SELECT DISTINCT
        ->   FILE_NAME AS File,
        ->   FREE_EXTENTS AS Free,
        ->   TOTAL_EXTENTS AS Total,
        ->   EXTENT_SIZE AS Size,
        ->   INITIAL_SIZE AS Initial
        ->   FROM INFORMATION_SCHEMA.FILES;
    +----------------+---------+---------+------+----------+
    | File           | Free    | Total   | Size | Initial  |
    +----------------+---------+---------+------+----------+
    | undofile.dat   |    NULL | 4194304 |    4 | 16777216 |
    | undofile02.dat |    NULL | 1048576 |    4 |  4194304 |
    | NULL           | 5223944 |    NULL |    4 |     NULL |
    +----------------+---------+---------+------+----------+
    3 rows in set (0.01 sec)
    

    このログファイル グループを使用たディスク データ テーブルによる undo ロギングに利用されるバイトでのフリースペースの最大化はフリー拡張に初期サイズを乗算することで最大化できます。

    mysql> SELECT
        ->   FREE_EXTENTS AS 'Free Extents',
        ->   FREE_EXTENTS * EXTENT_SIZE AS 'Free Bytes'
        ->   FROM INFORMATION_SCHEMA.FILES
        ->   WHERE LOGFILE_GROUP_NAME = 'lg1'
        ->   AND FILE_NAME IS NULL;
    +--------------+------------+
    | Free Extents | Free Bytes |
    +--------------+------------+
    |      5223944 |   20895776 |
    +--------------+------------+
    1 row in set (0.02 sec)
    

    ディスク データ テーブルを作成してその中にいくつか行を挿入すると、undo のロギング用に残されたスペースを大まかに知ることができます。

    mysql> CREATE TABLESPACE ts1
        ->   ADD DATAFILE 'data1.dat'
        ->   USE LOGFILE GROUP lg1
        ->   INITIAL_SIZE 512M
        ->   ENGINE = NDB;
    Query OK, 0 rows affected (8.71 sec)
    
    mysql> CREATE TABLE dd (
        ->   c1 INT NOT NULL PRIMARY KEY,
        ->   c2 INT,
        ->   c3 DATE
        ->   )
        ->   TABLESPACE ts1 STORAGE DISK
        ->   ENGINE = NDB;
    Query OK, 0 rows affected (2.11 sec)
    
    mysql> INSERT INTO dd VALUES
        ->   (NULL, 1234567890, '2007-02-02'),
        ->   (NULL, 1126789005, '2007-02-03'),
        ->   (NULL, 1357924680, '2007-02-04'),
        ->   (NULL, 1642097531, '2007-02-05');
    Query OK, 4 rows affected (0.01 sec)
    
    mysql> SELECT
        ->   FREE_EXTENTS AS 'Free Extents',
        ->   FREE_EXTENTS * EXTENT_SIZE AS 'Free Bytes'
        ->   FROM INFORMATION_SCHEMA.FILES
        ->   WHERE LOGFILE_GROUP_NAME = 'lg1'
        ->   AND FILE_NAME IS NULL;
    +--------------+------------+
    | Free Extents | Free Bytes |
    +--------------+------------+
    |      5207565 |   20830260 |
    +--------------+------------+
    1 row in set (0.01 sec)
    
  • FILES テーブルに関連付けられた SHOW コマンドはありません。

  • FILES テーブルを使用してクラスタ ディスク データ テーブルに関する情報の取得に関する他の例については 項14.11. 「MySQL Cluster ディスク データ ストレージ」 を参照してください。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.