FILES
テーブルは MySQL NDB
ディスクデータテーブルが格納されるファイルに関する情報を提供します。
このテーブルは、ディスクデータファイルに関する情報だけを提供します。個々の NDB
テーブルのディスク領域の割り当てまたは可用性の判断には使用できません。ただし、ndb_desc を使用して、データがディスク上に格納された NDB
テーブルごとにどれだけの領域が割り当てられているかとともに、そのテーブルに対しディスク上のデータのストレージに利用できる領域がどれだけ残っているかも表示できます。詳細は、セクション18.4.10「ndb_desc — 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 GROUP
によって作成されたUNDO
ログファイルの名前か、CREATE TABLESPACE
またはALTER TABLESPACE
で作成されたデータファイルの名前です。FILE_TYPE
は、UNDOFILE
、DATAFILE
、またはTABLESPACE
のいずれかの値です。TABLESPACE_NAME
は、ファイルが関連付けられているテーブルスペースの名前です。現在、
TABLESPACE_CATALOG
カラムの値は常にNULL
です。TABLE_NAME
は、関連するファイルがある場合、そのファイルに関連付けられたディスクデータテーブルの名前です。LOGFILE_GROUP_NAME
カラムは、ログファイルまたはデータファイルが属しているログファイルのグループに名前を付けます。UNDO
ログファイルでは、LOGFILE_GROUP_NUMBER
には、ログファイルが属しているログファイルグループの自動生成された ID 番号が含まれます。MySQL Cluster ディスクデータのログファイルまたはデータファイルに対し、
ENGINE
カラムの値は常にNDB
またはNDBCLUSTER
になります。MySQL Cluster ディスクデータのログファイルまたはデータファイルでは、
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
ステートメントで設定できます。詳細は、セクション13.1.18「CREATE TABLESPACE 構文」を参照してください。 -
INITIAL_SIZE
カラムには、ファイルのサイズがバイトで表示されます。これは、ファイルの作成に使用されたCREATE LOGFILE GROUP
、ALTER LOGFILE GROUP
、CREATE TABLESPACE
、またはALTER TABLESPACE
ステートメントのINITIAL_SIZE
句に使用された値と同じです。MySQL Cluster ディスクデータファイルの場合、
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 Cluster ディスクデータファイルでは、次のカラムは常に
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 Cluster ディスクデータファイルでは、
STATUS
カラムの値は常にNORMAL
です。-
MySQL Cluster ディスクデータファイルでは、各データノードがファイルのコピーを持っているため、
EXTRA
カラムには、ファイルが属しているデータノードが表示されます。4 つのデータノードを持つ MySQL Cluster で、次のステートメントを使用するとします。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
テーブルは、非標準テーブルです。-
ログファイルグループの作成すると、追加の行が
FILES
テーブルに存在します。この行はFILE_NAME
カラムの値に対してNULL
です。この行に対し、FILE_ID
カラムの値は常に0
で、FILE_TYPE
カラムの値は常にUNDO FILE
で、STATUS
カラムの値は常にNORMAL
になります。現在、ENGINE
カラムの値は常にNDBCLUSTER
です。この行の
FREE_EXTENTS
カラムには、名前と番号がそれぞれLOGFILE_GROUP_NAME
カラムとLOGFILE_GROUP_NUMBER
カラムに表示される特定のログファイルグループに属す、すべての Undo ファイルで利用可能な空きエクステントの合計数が表示されます。MySQL Cluster に既存のログファイルグループが存在せず、次のステートメントを使用してログファイルグループを作成するとします。
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)
MySQL Cluster ディスクデータテーブルを作成し、複数の行を挿入した場合、たとえば、その後 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)
データファイルがテーブルスペースに関連付けられているかどうかを問わず、MySQL Cluster テーブルスペースの追加の行が
FILES
テーブルに存在します。この行はFILE_NAME
カラムの値に対してNULL
です。この行に対し、FILE_ID
カラムの値は常に0
で、FILE_TYPE
カラムの値は常にTABLESPACE
で、STATUS
カラムの値は常にNORMAL
になります。現在、ENGINE
カラムの値は常にNDBCLUSTER
です。FILES
テーブルに関連付けられたSHOW
ステートメントはありません。MySQL ディスクデータオブジェクトの作成と削除の追加情報と例については、セクション18.5.12「MySQL Cluster ディスクデータテーブル」を参照してください。