21.29.15 INFORMATION_SCHEMA INNODB_SYS_TABLESPACES 테이블
INNODB_SYS_TABLESPACES 테이블은 InnoDB 데이터 사전 SYS_TABLESPACES 테이블의 정보와 동등한 InnoDB 테이블 스페이스에 대한 메타 데이터를 제공합니다.
관련 사용법 및 예제는 섹션 14.14.3 "InnoDB INFORMATION_SCHEMA 시스템 테이블" 을 참조하십시오.
표 21.16 INNODB_SYS_TABLESPACES 컬럼
| 컬럼 이름 | 설명 |
|---|---|
SPACE | 테이블 스페이스의 공간 ID. |
NAME | 데이터베이스 및 테이블 이름 (예를 들어 world_innodb\city ) |
FLAG | 이 값은 테이블 스페이스의 형식과 저장 특성에 관한 비트 수준의 정보를 제공합니다. |
FILE_FORMAT | 테이블 공간 파일 형식 (예를 들어 Antelope 과 Barracuda ). 이 필드의 데이터는 .ibd 파일 내에 존재하는 테이블 스페이스 플래그 정보에서 해석됩니다. InnoDB 파일 형식의 자세한 내용은 섹션 14.8 "InnoDB 파일 형식 관리" 를 참조하십시오. |
ROW_FORMAT | 테이블 스페이스 행 형식 (Compact 또는 Redundant, Dynamic, Compressed). 이 필드의 데이터는 .ibd 파일 내에 존재하는 테이블 스페이스 플래그 정보에서 해석됩니다. |
PAGE_SIZE | 테이블 스페이스의 페이지 크기. 이 필드의 데이터는 .ibd 파일 내에 존재하는 테이블 스페이스 플래그 정보에서 해석됩니다. |
ZIP_PAGE_SIZE | 테이블 공간의 Zip 페이지 크기. 이 필드의 데이터는 .ibd 파일 내에 존재하는 테이블 스페이스 플래그 정보에서 해석됩니다. |
예 :
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES WHERE SPACE = 57 \G
*************************** 1. row ***************************
SPACE: 57
NAME: test/t1
FLAG: 0
FILE_FORMAT: Antelope
ROW_FORMAT: Compact or Redundant
PAGE_SIZE: 16384
ZIP_PAGE_SIZE: 0
1 row in set (0.00 sec)참고 :
DESCRIBE또는SHOW COLUMNS를 사용하여 데이터 유형 및 기본값을 포함하여이 테이블의 컬럼에 대한 추가 정보를 표시합니다.이 테이블을 쿼리하려면
PROCESS권한이 필요합니다.모든 Antelope 파일 형식의 테이블 스페이스 플래그 (테이블 플래그와는 달리) 항상 제로이므로 테이블 스페이스 행 형식이 Redundant 또는 Compact인지이 플래그 정수를 판단 할 수 없습니다. 이 결과
ROW_FORMAT필드에 지정 가능한 값은 "Compact 또는 Redundant", "Compressed", "Dynamic"입니다.
INNODB_SYS_TABLESPACES.FLAG 컬럼 값의 해석 :
INNODB_SYS_TABLESPACES.FLAG 컬럼은 테이블 스페이스의 형식 및 저장 특성에 관한 비트 수준의 정보를 제공합니다.
MySQL 5.6까지 테이블 플래그 및 테이블 스페이스 플래그 비트 위치 0 설정을 제외 같았습니다. MySQL 5.6에서는 논리적 페이지 크기를 유지하기 위해 추가의 4 비트를 필요로하는 4K 및 8K 페이지에 대한 지원이 추가되었습니다. MySQL 5.6에서는 또한 CREATE TABLE 및 ALTER TABLE DATA DIRECTORY 절에 대한 지원이 추가되어 MySQL 데이터 디렉토리 외부에 file-per-table 테이블 공간을 저장할 수있게되었습니다. 이 기능은 테이블 플래그 및 테이블 스페이스 플래그 모두에 추가 비트가 필요했지만, 위치는 동일하지 않습니다.
다음 표에 표시된 해당하는 10 진수 값을 함께 추가하면 테이블 공간 FLAG 컬럼 값을 해석 할 수 있습니다.
표 21.17 INNODB_SYS_TABLESPACES FLAG 컬럼 데이터를 해석하는 비트 위치 값
Bit | 설명 | 10 진수 |
|---|---|---|
0 | 테이블 스페이스 내의 테이블의 행 형식이 DYNAMIC 또는 COMPRESSED 의 경우이 비트가 설정됩니다. 이 정보를 사용하여 Antelope 파일 형식과 Barracuda 파일 형식을 구별 할 수 있지만 REDUNDANT 파일 형식과 COMPACT 파일 형식은 구별 할 수 없습니다 ( DYNAMIC 행 형식과 COMPRESSED 행 형식은 Barracuda 파일 형식이 필요합니다). file-per-table 테이블 스페이스 인 경우 INNODB_SYS_TABLES 를 쿼리하여 2 개의 Antelope 행 형식 ( REDUNDANT 또는 COMPACT )의 어느 쪽이 사용되고 있는지를 판단해야합니다. |
|
1-4 | 이러한 4 개의 비트는 테이블 공간의 압축 된 페이지 크기 ( KEY_BLOCK_SIZE 또는 "물리적 블록 크기")를 나타내는 작은 숫자가 포함되어 있습니다. |
|
5 | 테이블의 행 형식이 DYNAMIC 또는 COMPRESSED 인 경우, file-per-table 테이블 공간이 비트가 설정됩니다. |
|
6-9 | 이러한 4 개의 비트는 테이블 공간의 압축 해제 된 페이지 크기 (논리적 페이지 크기)를 나타내는 작은 숫자가 포함되어 있습니다. 논리적 페이지 크기가 16K의 원래 InnoDB 기본 페이지 크기 인 경우,이 설정은 0입니다. |
|
10 | CREATE TABLE 또는 ALTER TABLE 에 DATA DIRECTORY 옵션이 사용 된 경우이 비트가 설정됩니다. 기본 데이터 디렉토리 ( datadir ) 이외의 디렉토리에 놓인 file-per-table 테이블 공간이 비트가 설정됩니다. 이 테이블은 파일은 파일과 같은 위치에 존재합니다. 파일에는 file-per-table 테이블 공간 파일에 실제 디렉토리 경로가 포함됩니다. |
|
다음 예에서는 테이블 t1 은 innodb_file_per_table=ON 으로 작성됩니다. 이것은 테이블 t1 을 자신의 테이블 공간에 만듭니다. INNODB_SYS_TABLESPACES 를 쿼리하면 테이블 스페이스의 FLAG 값이 33임을 알 수 있습니다. 어떻게이 값이 될지를 판단하려면 위의 표에 기록되어있는 비트 값을 참조하십시오. 테이블 t1 에서 DYNAMIC 행 형식을 사용하므로 비트 0은 1의 값입니다. 테이블 스페이스가 DYNAMIC 행 형식을 사용하는 file-per-table 테이블 공간이므로 비트 5는 32의 값이됩니다. innodb_page_size 는 기본 16K 값으로 설정되어 있기 때문에 비트 위치 6-9은 0입니다. 다른 비트 값을 적용 할 수 없기 때문에 0으로 설정됩니다. 비트 위치 0 및 비트 위치 5의 값은 합계 33 FLAG 값입니다.
mysql> use test;
Database changed
mysql> SHOW VARIABLES LIKE 'innodb_file_per_table';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_file_per_table | ON |
+-----------------------+-------+
1 row in set (0.00 sec)
mysql> SHOW VARIABLES LIKE 'innodb_page_size';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| innodb_page_size | 16384 |
+------------------+-------+
1 row in set (0.00 sec)
mysql> SET GLOBAL innodb_file_format=Barracuda;
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE TABLE t1 (c1 int) ROW_FORMAT=DYNAMIC;
Query OK, 0 rows affected (0.02 sec)
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES WHERE NAME LIKE 'test/t1' \G
*************************** 1. row ***************************
SPACE: 75
NAME: test/t1
FLAG: 33
FILE_FORMAT: Barracuda
ROW_FORMAT: Dynamic
PAGE_SIZE: 16384
ZIP_PAGE_SIZE: 0
1 row in set (0.00 sec)