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)