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
입니다.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
컬럼 값의 합계보다 다소 줄어 듭니다. 이것은 로그 파일 그룹에 두 번째 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 디스크 데이터 테이블" 을 참조하십시오.