21.30.1 INFORMATION_SCHEMA FILES 테이블
FILES 테이블은 MySQL NDB 디스크 데이터 테이블이 저장되는 파일에 대한 정보를 제공합니다.
이 테이블은 디스크 데이터 파일에 대한 정보만을 제공합니다. 각 NDB 테이블의 디스크 공간 할당 또는 가용성의 판단에 사용할 수 없습니다. 그러나 ndb_desc를 사용하여 데이터가 디스크에 저장된 NDB 테이블마다 얼마나 많은 공간이 할당되어 있는지와 함께 테이블에 대해 디스크 데이터 스토리지에 사용 가능한 공간이 얼마나 남아 있을지도 볼 수 있습니다. 자세한 내용은 섹션 18.4.10 "ndb_desc - NDB 테이블보기" 를 참조하십시오.
INFORMATION_SCHEMA Name | SHOW Name | Remarks |
|---|---|---|
FILE_ID | | MySQL extension |
FILE_NAME | | MySQL extension |
FILE_TYPE | | MySQL extension |
TABLESPACE_NAME | | MySQL extension |
TABLE_CATALOG | | MySQL extension |
TABLE_SCHEMA | | MySQL extension |
TABLE_NAME | | MySQL extension |
LOGFILE_GROUP_NAME | | MySQL extension |
LOGFILE_GROUP_NUMBER | | MySQL extension |
ENGINE | | MySQL extension |
FULLTEXT_KEYS | | MySQL extension |
DELETED_ROWS | | MySQL extension |
UPDATE_COUNT | | MySQL extension |
FREE_EXTENTS | | MySQL extension |
TOTAL_EXTENTS | | MySQL extension |
EXTENT_SIZE | | MySQL extension |
INITIAL_SIZE | | MySQL extension |
MAXIMUM_SIZE | | MySQL extension |
AUTOEXTEND_SIZE | | MySQL extension |
CREATION_TIME | | MySQL extension |
LAST_UPDATE_TIME | | MySQL extension |
LAST_ACCESS_TIME | | MySQL extension |
RECOVER_TIME | | MySQL extension |
TRANSACTION_COUNTER | | MySQL extension |
VERSION | | MySQL extension |
ROW_FORMAT | | MySQL extension |
TABLE_ROWS | | MySQL extension |
AVG_ROW_LENGTH | | MySQL extension |
DATA_LENGTH | | MySQL extension |
MAX_DATA_LENGTH | | MySQL extension |
INDEX_LENGTH | | MySQL extension |
DATA_FREE | | MySQL extension |
CREATE_TIME | | MySQL extension |
UPDATE_TIME | | MySQL extension |
CHECK_TIME | | MySQL extension |
CHECKSUM | | MySQL extension |
STATUS | | MySQL extension |
EXTRA | | MySQL extension |
참고 :
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열에는 파일에 할당 된 익스텐트의 수를 표시합니다.이 두 컬럼의 차이가 현재 파일에서 사용되는 범위 수 있습니다.
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입니다.VERSIONROW_FORMATTABLE_ROWSAVG_ROW_LENGTHDATA_LENGTHMAX_DATA_LENGTHINDEX_LENGTHDATA_FREECREATE_TIMEUPDATE_TIMECHECK_TIMECHECKSUM
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컬럼 값의 합계보다 다소 줄어 듭니다. 이것은 로그 파일 그룹에 두 번째 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 로깅에 사용 가능한 공간이 얼마나 남아 있는지를 대략적으로 확인할 수 있습니다.
->
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 디스크 데이터 테이블" 을 참조하십시오.