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 ディスク データ ストレージ」
          を参照してください。
        

