[MySQL] Information Schema - System : 1번째

■ COLUMNS Table

특정테이블에 포함된 컬럼 속성 정보 표시합니다.

컬럼의 정보는 다음과 같습니다.

 

• TABLE_CATALOG

열을 포함하는 테이블이 속한 카탈로그의 이름입니다. 항상 def값입니다.

 

• TABLE_SCHEMA

테이블이 속한 스키마(데이터베이스) 이름입니다.

 

• TABLE_NAME

해당 컬럼이 있는 테이블 이름입니다.

 

• COLUMN_NAME

컬럼이름입니다.

 

• ORDINAL_POSITION

테이블 컬럼의 위치(순서)입니다. SHOW COLUMNS 명령어와 달리 COLUMNS 테이블의 SELECT에는 자동으로 정렬되어 출력되지 않습니다.

 

• COLUMN_DEFAULT

컬럼 기본값을 지정합니다. insert명령어로 null값이 들어올 어떤값으로 대체할지 결정합니다. 기본값이 null(테이블 생성이 아무것도 지정이 안되면)이면 null 저장됩니다.

 

• IS_NULLABLE

컬럼의 null 허용 여부입니다. NULL 값이 컬럼에 저장 있으면 값은 YES이고 그렇지 않으면 NO입니다.

 

• DATA_TYPE

컬럼의 데이터 타입입니다. varchar, char, int등의 컬럼 데이터 타입이 있습니다. 또한 정밀도 또는 길이와 같은 기타 정보가 포함됩니다.

) varchar, bigint, bigint. 뒤에 크기나 유형이 나오지 않음.

 

• CHARACTER_MAXIMUM_LENGTH

스트링 컬럼에서 최대로 가질수 있는 길이입니다.

 

• CHARACTER_OCTET_LENGTH

스트링 컬럼에서 최대 길이(바이트)입니다.

 

• NUMERIC_PRECISION

숫자 컬럼에서 숫자에 대한 정밀도입니다. !!!!!! 숫자 정밀도? 어떤 의미인지조회해볼것

 

• NUMERIC_SCALE

숫자 컬럼에서 숫자 크기입니다.

double일때는 2 표시. int, bigint일때는 0으로 표시됨.

 

• DATETIME_PRECISION

시간 컬럼의 소수 정밀도입니다.

datetime, timestamp에서 0으로 표시됩니다.

 

• CHARACTER_SET_NAME

문자열 컬럼에서 캐릭터셋 이름

 

• COLLATION_NAME

문자열 컬럼에서  데이터 정렬 이름.

 

• COLUMN_TYPE

컬럼 데이터 타입. DATA_TYPE 값은 다른 정보가 없는 유형 이름입니다. COLUMN_TYPE 값에는 유형 이름과 정밀도 또는 길이와 같은 기타 정보가 포함됩니다.

) varchar(30), bigint(3), bigint(20) unsigned.

컬럼에 대한 크기와 상세사항에 대해 출력.

 

• COLUMN_KEY

컬럼의 이름, 인덱의 종류가 표시됨. PRI(Primary Key), UNI(Unique Index), MUL(복합 인덱스) 표시됨.

PRI : 단일 Primary Key이거나 특정 Primary Key 포함된 컬럼들중 하나.

UNI : unique index 첫번째 열입니다. unique index 여러 열을 포함할 있기 때문입니다. 

MUL : 다중 컬럼 인덱스. 특정 인덱스의 번째 열입니다. 고유하지 않은, 일반 인덱스의 번째 열입니다. !!!!!! 복합 인덱스일때 진짜 선행컬럼외 다른 컬럼은 안나오는지 확인.

 

• EXTRA

주어진 컬럼에 대한 추가 정보입니다. 다음과 같은 경우 값은 비어 있지 않습니다.

- AUTO_INCREMENT 속성이 있는 컬럼의 경우 auto_increment입니다.

- ON UPDATE CURRENT_TIMESTAMP 속성이 있는 TIMESTAMP 또는 DATETIME 컬럼에 대한 CURRENT_TIMESTAMP 업데이트시 표시됩니다.

- generated column 대해 STORED GENERATED 또는 VIRTUAL GENERATED인지 표시합니다.

 

 

• PRIVILEGES

컬럼에 대해 어떤 권한들이 있는지 표시합니다.

 

• COLUMN_COMMENT

컬럼의 코멘트를 표시합니다.

 

• GENERATION_EXPRESSION

generated column 경우 컬럼값을 계산하는데 사용되는 계산식을 표시한다. nongenerated column 경우 비어 있습니다.

 

참고

show column명령어로 컬럼 정보를확인할 있습니다.

SHOW [FULL] COLUMNS

  FROM tbl_name

  [FROM db_name]

  [LIKE 'wild']

 

 

■ COLUMN_PRIVILEGES Table

컬럼에 대한 권한을 표시합니다. mysql.columns_priv 시스템 테이블의 값에서 가져옵니다.

컬럼의 정보는 다음과 같습니다.

 

• GRANTEE

해당컬럼에 사용이 허가된 계정이름이 표시됩니다. 'user_name'@'host_name' 형식으로 나타납니다.

 

• TABLE_CATALOG

컬럼을 포함하는 테이블이 속한 카탈로그의 이름입니다. 항상 값은 def입니다.

 

• TABLE_SCHEMA

특정 테이블에 포함된 컬럼이 속한 데이터베이스(스키마) 이름입니다.

 

• TABLE_NAME

컬럼이 속한 테이블 이름입니다.

 

• COLUMN_NAME

컬럼 이름입니다.

 

• PRIVILEGE_TYPE

컬럼에 부여된 권한입니다. 컬럼 수준에서 부여될 있는 권한을 표시합니다. 행은 단일 권한을 나열하므로 피부 여자가 보유한 권한 하나의 행이 있습니다.

 

SHOW FULL COLUMNS 출력에서 권한은 모두 하나의 컬럼에 소문자로 표시됩니다 ( : select, insert, update, references). COLUMN_PRIVILEGES에는 대문자로 행당 하나의 권한이 있습니다.

 

• IS_GRANTABLE

사용자에게 GRANT OPTION 권한이 있으면 YES, 그렇지 않으면 NO 입니다. 출력에는 GRANT OPTION PRIVILEGE_TYPE = 'GRANT OPTION' 별도의 행으로 나열되지 않습니다.

 

• SQL 명령어 조회

다음과 같이 사용할 수도 있습니다.

+ 직접 조회

SELECT ... FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES

+ 명령어 조회

SHOW GRANTS ...

 

 

■ EVENTS Table

이벤트 스케쥴러에 의해 실행되는 이벤트 정보에 대한 내용을 나타냅니다.

컬럼의 정보는 다음과 같습니다.

 

• EVENT_CATALOG

이벤트를 소유하고 있는 카탈로그입니다. 항상 def입니다.

 

• EVENT_SCHEMA

이벤트를 소유하고 있는 스키마(database)입니다.

 

• EVENT_NAME

이벤트 이름입니다.

 

• DEFINER

이벤트를 만든 계정입니다. 'user_name'@'host_name' 형식으로 표시됩니다.

 

• TIME_ZONE

이벤트 실행시간을 나타내는 시간대이며 이벤트가 실행될때 이벤트 내에 적용됩니다. 기본값은 SYSTEM입니다.

 

• EVENT_BODY

이벤트 소스의 DO 안에 있는 문장을 표시합니다. 값은 항상 SQL 입니다.

 

• EVENT_DEFINITION

이벤트 소스의 DO 안에 있는 문장을 표시합니다. , 이벤트에 의해 실행되는 명령문입니다.

 

• EVENT_TYPE

이벤트 반복 유형을 나타냅니다. ONE TIME(한번) 또는 RECURRING(반복) 으로 표시됩니다.

 

• EXECUTE_AT

일회성 이벤트의 경우에는 이벤트를 생성하는 사용된 CREATE EVENT 문의 AT 또는 이벤트를 수정 마지막 ALTER EVENT 문의 DATETIME 값입니다. 컬럼에 표시된 값은 이벤트의 AT 절에 포함 INTERVAL 값의 더하기 또는 빼기를 반영합니다. 예를 들어 ON SCHEDULE AT CURRENT_TIMESTAMP + '1 : 6'DAY_HOUR 사용하여 이벤트가 생성되고 이벤트가 2018-02-09 14:05:30 생성된 경우 컬럼에 표시되는 값은 '2018-02 -10 20:05:30 ' 입니다. 이벤트의 타이밍이 AT 대신 EVERY절에 의해 결정되는 경우 (, 이벤트가 반복되는 경우) 컬럼의 값은 NULL입니다.

 

• INTERVAL_VALUE

반복 이벤트인 경우 이벤트 실행 주기를 나타냅니다. 한번만 실행되는 이벤트인 경우 NULL 표시됩니다.

 

• INTERVAL_FIELD

반복 이벤트가 재수행 되기전에 대기하는 간격에 사용되는 시간 단위입니다. 한번만 실행되는 이벤트의 경우 값은 항상 NULL입니다. - !!!!!!!!위에것과 비교해서 확인해볼것.!!!!!!!!

 

• SQL_MODE

이벤트가 작성 또는 변경될 , 이벤트가 실행될때 적용되는 SQL 모드입니다.

 

• STARTS

반복 이벤트의 시작날짜 시간입니다. 이는 DATETIME 값으로 표시되며 이벤트에 대해 시작날짜 시간이 정의되지 않은 경우 NULL입니다. 임시 이벤트의 경우 컬럼은 항상 NULL입니다. 이벤트 작성시 STARTS 절이 포함된 반복 이벤트의 경우 컬럼에는 해당 DATETIME 값이 포함됩니다. EXECUTE_AT 컬럼과 마찬가지로이 값은 사용된 모든 문법을 확인합니다. 이벤트 타이밍에 영향을 미치는 STARTS절이 없는 경우 컬럼은 NULL입니다.

 

• ENDS

이벤트 소스에 ENDS 절이 포함된 반복 이벤트의 경우 컬럼에는 해당 DATETIME 값이 포함됩니다. EXECUTE_AT 컬럼과 마찬가지로 값은 이벤트 소스에서 사용된 모든 내용을 확인합니다. 이벤트 타이밍에 영향을주는 ENDS 절이 없는 경우 컬럼은 NULL입니다.

 

• STATUS

이벤트 상태입니다. ENABLED, DISABLED 또는 SLAVESIDE_DISABLED 중하나입니다. 

SLAVESIDE_DISABLED 복제 환경에서 소스 MySQL서버에서 이벤트가 만들어지고 이벤트가 타겟 서버로 복제가 되었지만 현제 타겟에서는 이벤트가 실행되고 있지 않음을 나타냅니다.

 

• ON_COMPLETION

PRESERVE 혹은 NOT PRESERVE 2둘중에 하나만 표시가 됩니다.

 

• CREATED

생성일자(시간포함) 표시됩니다. 타임스탬프 값으로 표시됩니다.

 

• LAST_ALTERED

이벤트가 마지막으로 수정된 날짜 시간입니다. 이것은 TIMESTAMP 값입니다. 이벤트가 생성된 이후 수정되지 않은 경우 값은 CREATED 값과 동일합니다.

 

• LAST_EXECUTED

이벤트가 마지막으로 실행된 날짜 시간입니다. 이것은 DATETIME 값입니다. 이벤트가 실행되지 않은 경우이 컬럼은 NULL입니다.

LAST_EXECUTED 이벤트가 시작된시기를 나타냅니다. 결과적으로 ENDS 열은 LAST_EXECUTED보다 작지 않습니다.

 

• EVENT_COMMENT

코멘트를 표기합니다. 코멘트가 없으면 비어 있습니다.

 

• ORIGINATOR

이벤트가 생성된 MySQL 서버의 서버 ID입니다. 복제에 사용됩니다. 값은 복제 소스에서 실행되는 경우 ALTER EVENT 의해 해당 명령문이 발생한 서버의 서버 ID 업데이트될 있습니다. 기본값은 0입니다.

 

• CHARACTER_SET_CLIENT

이벤트가 생성되었을 character_set_client 시스템 변수의 세션 값입니다.

 

• COLLATION_CONNECTION

이벤트가 작성될 collation_connection 시스템 변수의 세션 값입니다.

 

• DATABASE_COLLATION

이벤트가 연결된 데이터베이스의 데이터 정렬입니다.

 

• SQL 명령어 조회

+ 명령문으로 확인하는 방법

SHOW EVENTS

  [FROM db_name]

  [LIKE 'wild']

 

 

■ Files Table

FILES 테이블은 MySQL 테이블 스페이스 데이터가 저장되는 파일에 대한 정보를 제공합니다.

FILES 테이블은 InnoDB 데이터 파일에 대한 정보를 제공합니다. NDB 클러스터에서이 테이블은 NDB 클러스터 디스크 데이터 테이블이 저장되는 파일에 대한 정보도 제공합니다.

InnoDB 대한 추가 정보는이 섹션 뒷부분의 InnoDB Notes 참조하세요. NDB 클러스터에 대한 추가 정보는 NDB 참고 사항을 참조하세요.

컬럼의 정보는 다음과 같습니다.

 

• FILE_ID

InnoDB 경우 : 테이블 스페이스 ID. space_id 또는 fil_space_t :: id라고도합니다.

NDB 경우 : 파일 식별자. FILE_ID 컬럼 값이 자동 생성됩니다.

 

• FILE_NAME

InnoDB 경우 : 데이터 파일의 이름입니다. 테이블 파일 일반 테이블 스페이스에는 .ibd 파일 이름 확장명이 있습니다. 실행 취소 테이블 스페이스 앞에는 실행 취소가 붙습니다. 시스템 테이블 스페이스는 ibdata 시작됩니다.

임시 테이블 스페이스는 ibtmp 시작됩니다. 파일 이름에는 MySQL 데이터 디렉토리 (datadir 시스템 변수의 ) 상대적 수있는 파일 경로가 포함됩니다.

NDB 경우 : CREATE LOGFILE GROUP 또는 ALTER LOGFILE GROUP 의해 생성 UNDO 로그 파일 또는 CREATE TABLESPACE 또는 ALTER TABLESPACE 의해 생성 데이터 파일의 이름입니다.

 

• FILE_TYPE

InnoDB 경우 : 테이블 스페이스 파일 유형. InnoDB 파일에는 가지 가능한 파일 유형이 있습니다.

TABLESPACE 테이블, 인덱스 또는 기타 형식의 사용자 데이터를 보유하는 모든 시스템, 일반 또는 테이블 파일 테이블 스페이스 파일의 파일 유형입니다. TEMPORARY 임시 테이블 스페이스의 파일 유형입니다.

UNDO LOG 실행 취소 레코드를 보유하는 실행 취소 테이블 스페이스의 파일 유형입니다.

NDB 경우 : UNDO LOG, DATAFILE 또는 TABLESPACE 하나입니다.

 

• TABLESPACE_NAME

InnoDB 경우 : 테이블 스페이스의 SQL 이름입니다. 일반 테이블 스페이스 이름은 SYS_TABLESPACES.NAME 값입니다.

다른 테이블 스페이스 파일의 경우 이름은 innodb_system, innodb_undo innodb_file_per_table 같이 innodb_ 시작합니다.

테이블 파일 테이블 스페이스 이름 형식은 innodb_file_per_table _ ##이며, 여기서 ## 테이블 스페이스 ID입니다.

NDB 경우 : 파일이 연결된 테이블 스페이스의 이름입니다.

 

• TABLE_CATALOG

값은 항상 비어 있습니다.

 

• TABLE_SCHEMA

값은 항상 비어있습니다.

 

• TABLE_NAME

이값은 항상 비어있습니다.

 

• LOGFILE_GROUP_NAME

InnoDB 경우 : 항상 NULL입니다.

NDB 경우 : 로그 파일 또는 데이터 파일이 속한 로그 파일 그룹의 이름입니다.

 

• LOGFILE_GROUP_NUMBER

InnoDB 경우 : 값은 항상 NULL입니다.

NDB 경우 : 디스크 데이터 실행 취소 로그 파일의 경우 로그 파일이 속한 로그 파일 그룹의 자동 생성 ID 번호입니다. 이는이 실행 취소 로그 파일에 대한 ndbinfo.dict_obj_info 테이블의 id 컬럼과 ndbinfo.logspaces ndbinfo.logspaces 테이블의 log_id 컬럼에 대해 표시된 값과 동일합니다.

 

• ENGINE

InnoDB 경우 : 항상 InnoDB입니다.

NDB 경우 : 항상 ndbcluster입니다.

 

• FULLTEXT_KEYS

값은 항상 NULL입니다.

 

• DELETED_ROWS

값은 항상 NULL 입니다.

 

• UPDATE_COUNT

값은 항상 NULL입니다.

 

• FREE_EXTENTS

InnoDB 경우 : 현재 데이터 파일에서 완전히 사용 가능한 확장 영역의 수입니다.

NDB 경우 : 파일에서 아직 사용하지 않은 익스텐트 수입니다.

 

• TOTAL_EXTENTS

InnoDB 경우 : 현재 데이터 파일에 사용 전체 범위의 수입니다. 파일 끝에있는 부분 범위는 계산되지 않습니다.

NDB 경우 : 파일에 할당 익스텐트 수입니다.

 

• EXTENT_SIZE

InnoDB 경우 : 페이지 크기가 4KB, 8KB 또는 16KB 파일의 경우 Extent 크기는 1048576 (1MB)입니다. 익스텐트 크기는 페이지 크기가 32KB 파일의 경우 2097152 바이트 (2MB)이고 페이지 크기가 64KB 파일의 경우 4194304 (4MB)입니다. FILES InnoDB 페이지 크기를보고하지 않습니다. 페이지 크기는 innodb_page_size 시스템 변수로 정의됩니다. 익스텐트 크기 정보는 FILES.FILE_ID = INNODB_SYS_TABLESPACES.SPACE INNODB_SYS_TABLESPACES 테이블에서도 검색 있습니다.

NDB 경우 : 파일의 확장 영역 크기 (바이트).

 

• INITIAL_SIZE

InnoDB 경우 : 파일의 초기 크기 (바이트).

NDB 경우 : 파일 크기 (바이트)입니다. 파일 생성에 사용 CREATE LOGFILE GROUP, ALTER LOGFILE GROUP, CREATE TABLESPACE 또는 ALTER TABLESPACE 문의 INITIAL_SIZE 절에 사용 것과 동일한 값입니다.

 

• MAXIMUM_SIZE

InnoDB 경우 : 파일에서 허용되는 최대 바이트 . 미리 정의 시스템 테이블 스페이스 데이터 파일을 제외한 모든 데이터 파일의 값은 NULL입니다. 최대 시스템 테이블 스페이스 파일 크기는 innodb_data_file_path 의해 정의됩니다. 최대 임시 테이블 스페이스 파일 크기는 innodb_temp_data_file_path 의해 정의됩니다. 미리 정의 시스템 테이블 스페이스 데이터 파일의 NULL 값은 파일 크기 제한이 명시 적으로 정의되지 않았 음을 나타냅니다.

NDB 경우 : 값은 항상 INITIAL_SIZE 값과 동일합니다.

 

• AUTOEXTEND_SIZE

InnoDB 경우 : AUTOEXTEND_SIZE 시스템 테이블 스페이스의 경우 innodb_data_file_path, 임시 테이블 스페이스의 경우 innodb_temp_data_file_path 의해 정의 자동 확장 크기입니다.

NDB 경우 : 항상 NULL입니다.

 

• CREATION_TIME

값은 항상 NULL 입니다.

 

• LAST_UPDATE_TIME

값은 항상 NULL 입니다.

 

• LAST_ACCESS_TIME

값은 항상 NULL입니다.

 

• RECOVER_TIME

값은 항상 NULL 입니다.

 

• TRANSACTION_COUNTER

값은 항상 NULL 입니다.

 

• VERSION

InnoDB 경우 : 항상 NULL입니다.

NDB 경우 : 파일의 버전 번호입니다.

 

• ROW_FORMAT

InnoDB 경우 : 항상 NULL입니다.

NDB 경우 : FIXED 또는 DYNAMIC 하나입니다.

 

• TABLE_ROWS

값은 항상 NULL 입니다.

 

• AVG_ROW_LENGTH

값은 항상 NULL 입니다.

 

• DATA_LENGTH

값은 항상 NULL 입니다.

 

• MAX_DATA_LENGTH

값은 항상 NULL 입니다.

 

• INDEX_LENGTH

값은 항상 NULL 입니다.

 

• DATA_FREE

InnoDB 경우 : 전체 테이블 스페이스에 대한 여유 공간 (바이트)입니다. 시스템 테이블 스페이스 임시 테이블 테이블 스페이스를 포함하는 미리 정의 시스템 테이블 스페이스에는 하나 이상의 데이터 파일이있을 있습니다.

NDB 경우 : 항상 NULL입니다.

 

• CREATE_TIME

값은 항상 NULL 입니다.

 

• UPDATE_TIME

값은 항상 NULL 입니다.

 

• CHECK_TIME

값은 항상 NULL 입니다.

 

• CHECKSUM

값은 항상 NULL 입니다.

 

• STATUS

InnoDB 경우 : 값은 기본적으로 NORMAL입니다. InnoDB 테이블 파일 테이블 스페이스는 IMPORTING을보고 있으며 이는 테이블 스페이스를 아직 사용할 없음을 나타냅니다.

NDB 경우 : 항상 NORMAL입니다.

 

• EXTRA

InnoDB 경우 : 항상 NULL입니다.

NDB 경우 : 컬럼은 데이터 파일 또는 실행 취소 로그 파일이 속한 데이터 노드를 표시합니다 ( 데이터 노드는 파일의 자체 복사본을 가짐). 실행 취소 로그 파일의 경우 실행 취소 로그 버퍼의 크기도 표시됩니다.

개의 데이터 노드가있는 NDB 클러스터에서이 문을 사용한다고 가정합니다.

mysql> 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 LOG  | CLUSTER_NODE=5;UNDO_BUFFER_SIZE=8388608 |
| mygroup            | UNDO LOG  | CLUSTER_NODE=6;UNDO_BUFFER_SIZE=8388608 |
| mygroup            | UNDO LOG  | CLUSTER_NODE=7;UNDO_BUFFER_SIZE=8388608 |
| mygroup            | UNDO LOG  | CLUSTER_NODE=8;UNDO_BUFFER_SIZE=8388608 |
+--------------------+-----------+-----------------------------------------+

 

▶︎ 참고사항

+ FILES 비표준 INFORMATION_SCHEMA 테이블입니다.

 

▶︎ InnoDB Notes

다음 참고 사항은 InnoDB 데이터 파일에 적용됩니다.

+ FILES 의해보고 데이터는 열린 파일에 대해 InnoDB 메모리 캐시에서보고됩니다. 이에 비해 INNODB_SYS_DATAFILES InnoDB SYS_DATAFILES 내부 데이터 사전 테이블의 데이터를보고합니다.

+ FILES가보고하는 데이터에는 임시 테이블 스페이스 데이터가 포함됩니다. 데이터는 InnoDB SYS_DATAFILES 내부 데이터 사전 테이블에서 사용할 없으므로 INNODB_SYS_DATAFILES 의해보고되지 않습니다.

+ Undo 테이블 스페이스 데이터는 FILES 의해보고됩니다.

+ 다음 쿼리는 InnoDB 테이블 스페이스와 관련된 모든 데이터를 반환합니다.

SELECT
  FILE_ID, FILE_NAME, FILE_TYPE, TABLESPACE_NAME, FREE_EXTENTS,
  TOTAL_EXTENTS, EXTENT_SIZE, INITIAL_SIZE, MAXIMUM_SIZE,
  AUTOEXTEND_SIZE, DATA_FREE, STATUS
FROM INFORMATION_SCHEMA.FILES WHERE ENGINE='InnoDB'\G

 

▶︎ NDB Notes

+ FILES 테이블은 디스크 데이터 파일에 대한 정보 제공합니다. 개별 NDB 테이블에 대한 디스크 공간 할당 또는 가용성을 결정하는 사용할 없습니다.

그러나 ndb_desc 사용하여 디스크에 데이터가 저장된 NDB 테이블에 할당 공간의 양과 해당 테이블의 데이터를 디스크에 저장하는 사용할 수있는 공간의 양을 확인할 있습니다.

+ CREATION_TIME, LAST_UPDATE_TIME LAST_ACCESSED 값은 운영 체제에서보고 값이며 NDB 스토리지 엔진에서 제공하지 않습니다. 운영 체제에서 값을 제공하지 않는 경우 이러한 컬럼은 NULL 표시합니다.

+ TOTAL EXTENTS FREE_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 문에서 설정할 있습니다.

 

+ 로그 파일 그룹 생성 FILES 테이블에 추가 행이 있습니다. 행은 FILE_NAME 컬럼의 값에 대해 NULL 가지며 FILE_ID컬럼의 값에 대해 0 갖습니다. FILE_TYPE 컬럼의 값은 항상 UNDO LOG이고 STATUS 컬럼의 값은 항상 NORMAL입니다. 행의 ENGINE 컬럼 값은 항상 ndbcluster입니다.

 

행의 FREE_EXTENTS 컬럼은 이름과 번호가 각각 LOGFILE_GROUP_NAME LOGFILE_GROUP_NUMBER 컬럼에 표시된 지정된 로그 파일 그룹에 속하는 모든 실행 취소 파일에 사용할 수있는 여유 확장 영역 수를 보여줍니다.

 

NDB 클러스터에 기존 로그 파일 그룹이없고 다음 문을 사용하여 하나를 생성한다고 가정합니다.

mysql> CREATE LOGFILE GROUP lg1
         ADD UNDOFILE 'undofile.dat'
         INITIAL_SIZE = 16M
         UNDO_BUFFER_SIZE = 1M
         ENGINE = NDB;

 

이제 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 |
+--------------+---------+---------+------+----------+

 

실행 취소 로깅에 사용할 수있는 여유 익스텐트 수는 실행 취소 파일을 유지하는 필요한 오버 헤드로 인해 로그 파일 그룹의 모든 실행 취소 파일에 대한 TOTAL_EXTENTS 컬럼 값의 합계보다 항상 다소 적습니다. 로그 파일 그룹에 번째 실행 취소 파일을 추가 다음 FILES 테이블에 대해 이전 쿼리를 반복하면 확인할 있습니다.

mysql> ALTER LOGFILE GROUP lg1
         ADD UNDOFILE 'undofile02.dat'
         INITIAL_SIZE = 4M
         ENGINE = NDB;

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 |
+----------------+---------+---------+------+----------+

 

로그 파일 그룹을 사용하는 디스크 데이터 테이블의 실행 취소 로깅에 사용할 수있는 여유 공간 (바이트) 여유 익스텐트 수에 초기 크기를 곱하여 근사화 있습니다.

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 |
+--------------+------------+

 

NDB 클러스터 디스크 데이터 테이블을 만든 다음 여기에 일부 행을 삽입하면 나중에 실행 취소 로깅을 위해 남아있는 대략적인 공간을 있습니다. 예를 들면 다음과 같습니다.

mysql> CREATE TABLESPACE ts1
         ADD DATAFILE 'data1.dat'
         USE LOGFILE GROUP lg1
         INITIAL_SIZE 512M
         ENGINE = NDB;

mysql> CREATE TABLE dd (
         c1 INT NOT NULL PRIMARY KEY,
         c2 INT,
         c3 DATE
         )
         TABLESPACE ts1 STORAGE DISK
         ENGINE = NDB;

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');

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 |
+--------------+------------+

 

+ 데이터 파일이 테이블 스페이스와 연결되어 있는지 여부에 관계없이 NDB 클러스터 테이블 스페이스에 대한 FILES 테이블에 추가 행이 있습니다. 행은 FILE_NAME 컬럼의 값에 대해 NULL 가지며 FILE_ID 컬럼의 값은 항상 0입니다. FILE_TYPE 컬럼에 표시된 값은 항상 TABLESPACE이고 STATUS 컬럼의 값은 항상 NORMAL입니다. 행의 ENGINE 컬럼 값은 항상 ndbcluster입니다.

+ MySQL 5.7.31부터이 테이블을 쿼리하려면 PROCESS 권한이 있어야합니다.

 

 

■ KEY_COLUMN_USAGE Table

테이블은 컬럼이 가진 제약사항을 나타냅니다.

컬럼의 정보는 다음과 같습니다.

 

• CONSTRAINT_CATALOG

제약조건이 가지는 카탈로그의 이름입니다. 항상 def값을 가집니다.

 

• CONSTRAINT_SCHEMA

제약조건이 가지고 있는 스키마(데이터베이스) 이름입니다.

 

• CONSTRAINT_NAME

제약조건의 이름입니다.

 

• TABLE_CATALOG

The name of the catalog to which the table belongs. This value is always def.

테이블이 가지는 카탈로그의 이름입니다.값은 항상 def입니다.

 

• TABLE_SCHEMA

테이블이 소유하는 스키마(데이터베이스) 이름입니다.

 

• TABLE_NAME

제약조건의 테이블 이름입니다.

 

• COLUMN_NAME

제약조건의 컬럼 이름입니다.

제약 조건이 외래 키이면 외래 키가 참조하는 컬럼이 아니라 외래 키의 컬럼입니다.

 

• ORDINAL_POSITION

테이블 내의 컬럼 위치가 아니라 제약 조건 내의 컬럶 위치입니다. 컬럼 위치는 1부터 번호가 매겨집니다.

 

• POSITION_IN_UNIQUE_CONSTRAINT

유니크 프리머리 제약 조건의 경우 NULL입니다. 외래 제약 조건의 경우 컬럼은 참조되는 테이블 키의 서수 위치입니다.

 

• REFERENCED_TABLE_SCHEMA

제약조건에 의해 참조되는 스키마(데이터베이스)이름입니다.

 

• REFERENCED_TABLE_NAME

제약조건의 의해 참조되는 테이블 이름입니다.

 

• REFERENCED_COLUMN_NAME

제약조건의 의해 참조되는 컬럼 이름입니다.

 

예제 :

다음과 같은 정의가 있는 개의 테이블 이름 t1 t3 있다고 가정합니다.

CREATE TABLE t1
(
    s1 INT,
    s2 INT,
    s3 INT,
    PRIMARY KEY(s3)
) ENGINE=InnoDB;

CREATE TABLE t3
(
    s1 INT,
    s2 INT,
    s3 INT,
    KEY(s1),
    CONSTRAINT CO FOREIGN KEY (s2) REFERENCES t1(s3)
) ENGINE=InnoDB;

테이블의 경우 KEY_COLUMN_USAGE 테이블에는 개의 행이 있습니다.

 

하나의 .

CONSTRAINT_NAME = 'PRIMARY', TABLE_NAME = 't1', COLUMN_NAME = 's3', ORDINAL_POSITION = 1, POSITION_IN_UNIQUE_CONSTRAINT = NULL.

 

하나의 .

CONSTRAINT_NAME = 'CO', TABLE_NAME = 't3', COLUMN_NAME = 's2', ORDINAL_POSITION = 1, POSITION_IN_UNIQUE_CONSTRAINT = 1.

 

 

 

■ PARAMETERS Table

PARAMETERS 테이블은 스토어드 루틴(스토어드 프로시저 스토어드 펑션) 매개변수 스토어드 펑션의 리턴 값에 대한 정보를 제공합니다.

PARAMETERS 테이블에는 내장 SQL 함수 또는 사용자 정의 함수(UDF) 포함되지 않습니다. 매개 변수 정보는 mysql.proc 테이블의 param_list컬럼 내용과 유사합니다.

컬럼의 정보는 다음과 같습니다.

 

• SPECIFIC_CATALOG

매개 변수를 포함하는 루틴이 속한 카탈로그의 이름입니다. 값은 항상 def입니다.

 

• SPECIFIC_SCHEMA

매개변수를 포함하는 루틴이 속한 스키마(데이터베이스) 이름입니다.

 

• SPECIFIC_NAME

The name of the routine containing the parameter.

매개변수를 가진 루틴의 이름입니다.

 

• ORDINAL_POSITION

스토어드 프로시저 또는 펑션의 연속 매개 변수의 경우 ORDINAL_POSITION 값은 1번째, 2번째, 3번째 4번째 입니다. 스토어드 펑션의 경우 펑션 반환 값에 적용되는 행도 있습니다 (RETURNS 절에 설명 ). 반환 값은 매개 변수가 아니므로 이를 설명하는 행에는 다음과 같은 고유한 특성이 있습니다.

 

- The ORDINAL_POSITION value is 0.

반환값에 이름이 없고 모드가 적용되지 않기 때문에 PARAMETER_NAME PARAMETER_MODE 값은 NULL입니다.

 

- PARAMETER_MODE

매개 변수의 모드. 값은 IN, OUT 또는 INOUT 하나입니다. 스토어드 펑션 반환 값의 경우 값은 NULL입니다.

 

• PARAMETER_NAME

매개변수의 이름. 스토어드 펑션의 리턴값이며, 이값은 NULL입니다.

 

• DATA_TYPE

매개변수 데이터 타입 입니다.

DATA_TYPE 값은 다른 정보가 없는 유형 이름입니다. DTD_IDENTIFIER 값에는 유형 이름과 정밀도 또는 길이와 같은 기타 정보가 포함됩니다.

 

• CHARACTER_MAXIMUM_LENGTH

문자열 매개변수인 경우 문자 최대 길이를 나타냅니다.

 

• CHARACTER_OCTET_LENGTH

문자열 매개변수인 경우 바이트의 최대 길이를 나타냅니다.

 

• NUMERIC_PRECISION

숫자 매개 변수의 경우 숫자 정밀도를 나타냅니다.

 

• NUMERIC_SCALE

숫자 매개 변수의 경우 숫자 스케일입니다.

 

• DATETIME_PRECISION

시간 매개 변수의 경우 분수 정밀도입니다.

 

• CHARACTER_SET_NAME

캐릭터 문자열 변수의 경우 캐릭터 설정 이름을 나타냅니다.

 

• COLLATION_NAME

문자열 매개 변수의 경우 데이터 정렬 이름입니다.

 

• DTD_IDENTIFIER

매개변수 데이터 타입을 나타냅니다.

DATA_TYPE 값은 다른 정보가없는 유형 이름입니다. DTD_IDENTIFIER 값에는 유형 이름과 정밀도 또는 길이와 같은 기타 정보가 포함됩니다.

 

• ROUTINE_TYPE

저장 프로 시저의 경우 PROCEDURE, 저장 함수의 경우 FUNCTION 표시합니다.

 

 

■ PARTITIONS Table

PARTITIONS 테이블은 테이블 파티션에 대한 정보를 제공합니다.  테이블의  행은 파티션을 나눈 테이블의 개별 파티션 또는 하위 파티션에 해당합니다.

 컬럼의 정보는 다음과 같습니다.

 

• TABLE_CATALOG

테이블이 속한 카탈로그의 이름입니다.  값은 항상 def입니다.

 

• TABLE_SCHEMA

테이블이 속한 스키마 (데이터베이스) 이름입니다.

 

• TABLE_NAME

파티션을 포함하고 있는 테이블의 이름입니다.

 

• PARTITION_NAME

파티션의 이름입니다.

 

• SUBPARTITION_NAME

PARTITIONS 테이블 행이 하위 파티션을 나타내는 경우 하위 파티션의 이름입니다. 그렇지 않으면 NULL입니다.

 

• PARTITION_ORDINAL_POSITION

모든 파티션은 정의된 순서와 동일한 순서로 인덱싱되며 1  번째 파티션에 할당된 번호입니다. 인덱싱은 파티션이 추가, 삭제  재구성   변경   있습니다. 표시된 숫자는  컬럼이 색인 변경 사항을 고려하여 현재 순서를 반영한다는 것입니다.

 

• SUBPARTITION_ORDINAL_POSITION

주어진 파티션 내의 하위 파티션도 테이블 내에서 파티션이 인덱싱되는 것과 같은 방식으로 인덱싱되고 다시 인덱싱됩니다.

 

• PARTITION_METHOD

RANGE, LIST, HASH, LINEAR HASH, KEY 또는 LINEAR KEY   하나입니다. , 사용 가능한 파티션 유형  하나입니다.

 

• SUBPARTITION_METHOD

HASH, LINEAR HASH, KEY 또는 LINEAR KEY   하나입니다. ,사용 가능한 하위 파티셔닝 유형  하나입니다.

 

• PARTITION_EXPRESSION

테이블의 현재 분할 스키마를 생성  CREATE TABLE 또는 ALTER TABLE 문에서 사용되는 분할 함수에 대한 표현식입니다.

 

예를 들어 다음 명령문을 사용하여 테스트 데이터베이스에서 생성된 파티션된 테이블이 있습니다.

CREATE TABLE tp (
    c1 INT,
    c2 INT,
    c3 VARCHAR(25)
)
PARTITION BY HASH(c1 + c2)
PARTITIONS 4;

 

 테이블의 파티션에 대한 PARTITIONS 테이블 행의 PARTITION_EXPRESSION 컬럼은 다음과 같이 c1 + c2 표시합니다.

mysql> SELECT DISTINCT PARTITION_EXPRESSION
       FROM INFORMATION_SCHEMA.PARTITIONS
       WHERE TABLE_NAME='tp' AND TABLE_SCHEMA='test';
+----------------------+
| PARTITION_EXPRESSION |
+----------------------+
| c1 + c2              |
+----------------------+

 

• SUBPARTITION_EXPRESSION

이는 테이블의 분할을 정의하는데 사용되는 분할 식에 대해 PARTITION_EXPRESSION 수행하는 것처럼 테이블의 하위 분할을 정의하는 하위 분할식에 대해 동일한 방식으로 작동합니다.

테이블에 하위 파티션이 없는 경우  컬럼은 NULL입니다.

 

• PARTITION_DESCRIPTION

 컬럼은 RANGE  LIST 파티션에 사용됩니다. RANGE 파티션의 경우 파티션의 VALUES LESS THAN 절에 설정된 값이 포함되며 정수 또는 MAXVALUE  있습니다. LIST 파티션의 경우  컬럼에는 쉼표로 구분된 정수값 목록인 파티션의 VALUES IN 절에 정의된 값이 포함됩니다.

PARTITION_METHOD RANGE 또는 LIST 아닌 파티션의 경우  컬럼은 항상 NULL입니다.

 

• TABLE_ROWS

파티션안의 테이블 ROW 갯수입니다.

분할  InnoDB 테이블의 경우 TABLE_ROWS 열에 제공된  수는 SQL 최적화에 사용되는 예상 값일 뿐이며 항상 정확하지는 않을  있습니다.

NDB 테이블의 경우 ndb_desc 유틸리티를 사용하여  정보를 얻을 수도 있습니다.

 

• AVG_ROW_LENGTH

해당 파티션 또는 하위 파티션에 저장된 행의 평균 길이 (바이트)입니다. DATA_LENGTH TABLE_ROWS 나눈 것과 같습니다.

NDB 테이블의 경우 ndb_desc 유틸리티를 사용하여이 정보를 얻을 수도 있습니다.

 

• DATA_LENGTH

 파티션 또는 하위 파티션에 저장된 모든 행의  길이(바이트)입니다. , 파티션 또는 하위 파티션에 저장된  바이트 수입니다.

NDB 테이블의 경우 ndb_desc 유틸리티를 사용하여  정보를 얻을 수도 있습니다.

 

• MAX_DATA_LENGTH

 파티션 또는 하위 파티션에 저장할 수있는 최대 바이트 수입니다.

NDB 테이블의 경우 ndb_desc 유틸리티를 사용하여이 정보를 얻을 수도 있습니다.

 

• INDEX_LENGTH

 파티션 또는 하위 파티션에 대한 인덱스 파일의 길이 (바이트)입니다.

NDB 테이블의 파티션의 경우 테이블이 내재적 또는 명시적 파티션을 사용하는지 여부에 관계없이 INDEX_LENGTH  값은 항상 0입니다. 그러나 ndb_desc 유틸리티를 사용하여 동등한 정보를 얻을  있습니다.

 

• DATA_FREE

파티션 또는 하위 파티션에 할당되었지만 사용되지 않은 바이트 수입니다.

NDB 테이블의 경우 ndb_desc 유틸리티를 사용하여이 정보를 얻을 수도 있습니다.

 

• CREATE_TIME

파티션 또는 하위 파티션이 생성  시간입니다.

 

• UPDATE_TIME

파티션 혹은 하위 파티션이 마지막으로 수정된 시간입니다.

 

• CHECK_TIME

 파티션 또는 하위 파티션이 속한 테이블이 마지막으로 확인  시간입니다.

분할된 InnoDB 테이블의 경우 값은 항상 NULL입니다.

 

• CHECKSUM

체크섬  (있는 경우). 그렇지 않으면 NULL입니다.

 

• PARTITION_COMMENT

파티션에 주석이 있는 경우 주석 텍스트입니다. 그렇지 않은 경우  값은 비어 있습니다.

파티션 주석의 최대 길이는 1024자로 정의되며 PARTITION_COMMENT컬럼의 표시 너비도 1024 ( 제한과 일치)입니다.

 

• NODEGROUP

이것은 파티션이 속한 노드 그룹입니다. 이것은 NDB 클러스터 테이블에만 관련됩니다. 그렇지 않으면 값은 항상 0입니다.

 

• TABLESPACE_NAME

파티션이 속한 테이블 스페이스의 이름입니다. 테이블에서 NDB 스토리지 엔진을 사용하지 않는  값은 항상 DEFAULT입니다 ( 섹션  부분의 참고 참조).

 

 

▶︎ 참고사항

+ PARTITIONS 비표준 INFORMATION_SCHEMA 테이블입니다.

+ NDB 이외의 스토리지 엔진을 사용하고 분할되지 않은 테이블은 PARTITIONS 테이블에 하나의 행이 있습니다. 그러나 PARTITION_NAME, SUBPARTITION_NAME, PARTITION_ORDINAL_POSITION, SUBPARTITION_ORDINAL_POSITION, PARTITION_METHOD, SUBPARTITION_METHOD, PARTITION_EXPRESSION, SUBPARTITION_EXPRESSION  PARTITION_DESCRIPTION 컬럼의 값은 모두 NULL입니다. 또한이 경우 PARTITION_COMMENT 컬럼은 공백입니다.

+ 명시적으로 분할되지 않은 NDB 테이블에는 NDB 클러스터의  데이터 노드에 대해 PARTITIONS 테이블에 하나의 행이 있습니다.  행은 다음과 같습니다 :

- SUBPARTITION_NAME, SUBPARTITION_ORDINAL_POSITION, SUBPARTITION_METHOD, PARTITION_EXPRESSION, SUBPARTITION_EXPRESSION, CREATE_TIME, UPDATE_TIME, CHECK_TIME, CHECKSUM  TABLESPACE_NAME 열이 모두 NULL입니다.

- PARTITION_METHOD 항상 KEY입니다.

- NODEGROUP 컬럼은 기본값입니다.

- PARTITION_EXPRESSION  PARTITION_COMMENT 컬럼이 비어 있습니다.

 

 

■ PLUGINS Table

PLUGINS 테이블은 서버 플러그인에 대한 정보를 제공합니다.  컬럼의 정보는 다음과 같습니다.

 

• PLUGIN_NAME

INSTALL PLUGIN  UNINSTALL PLUGIN 같은 문에서 플러그인을 참조하는  사용되는 이름입니다.

 

• PLUGIN_VERSION

플러그인의 일반 유형 디스크립터의 버전입니다.

 

• PLUGIN_STATUS

지원되는 플러그인 상태를 ACTIVE, INACTIVE, DISABLED 또는 DELETED  하나로 표시합니다.

 

• PLUGIN_TYPE

STORAGE ENGINE, INFORMATION_SCHEMA 또는 AUTHENTICATION 같은 플러그인 유형입니다.

 

• PLUGIN_TYPE_VERSION

플러그인의 유형별 디스크립터 버전입니다.

 

• PLUGIN_LIBRARY

플러그인 공유 라이브러리 파일의 이름입니다. INSTALL PLUGIN  UNINSTALL PLUGIN 같은 명령문에서 플러그인 파일을 참조하는데 사용되는 이름입니다.  파일은 plugin_dir 시스템 변수로 이름지어진 디렉토리에 있습니다. 라이브러리 이름이 NULL이면 플러그인이 컴파일되고 UNINSTALL PLUGIN으로 제거   없습니다.

 

• PLUGIN_LIBRARY_VERSION

플러그인 API인터페이스 버전입니다.

 

• PLUGIN_AUTHOR

플러그인 작성자입니다.

 

• PLUGIN_DESCRIPTION

플러그인에 대한 간단한 설명입니다.

 

• PLUGIN_LICENSE

플러그인 라이센스 부여 방법 ( : GPL)

 

• LOAD_OPTION

플러그인이로드  방법. 값은 OFF, ON, FORCE 또는 FORCE_PLUS_PERMANENT입니다. 

 

▶︎ 참고사항

+ PLUGINS 비표준 INFORMATION_SCHEMA 테이블입니다.

+ INSTALL PLUGIN으로 설치된 플러그인의 경우 PLUGIN_NAME  PLUGIN_LIBRARY 값도 mysql.plugin 테이블에 등록됩니다.

 

• SQL  명령어 조회

플러그인 정보는 SHOW PLUGINS 명령문에서도 사용할  있습니다.

SELECT

  PLUGIN_NAME, PLUGIN_STATUS, PLUGIN_TYPE,

  PLUGIN_LIBRARY, PLUGIN_LICENSE

FROM INFORMATION_SCHEMA.PLUGINS;

 

SHOW PLUGINS;

 

 

■ ROCESSLIST Table

MySQL 프로세스 목록은 서버 내에서 실행중인 스레드 집합에서 현재 수행중인 작업을 나타냅니다. PROCESSLIST 테이블은 프로세스 정보의  소스입니다.

 컬럼의 정보는 다음과 같습니다.

 

• ID

연결 식별자입니다. 이는 SHOW PROCESSLIST 문의 Id 열에 표시되고 성능 스키마 스레드 테이블의 PROCESSLIST_ID 열에 표시되고 스레드 내에서 CONNECTION_ID () 함수에 의해 반환되는 동일한 값입니다.

 

• USER

명령문을 발행  MySQL 사용자입니다. 시스템 사용자의 값은 내부적으로 작업을 처리하기 위해 서버에서 생성   클라이언트 스레드 (:지연된  처리기 스레드 또는 복제본 호스트에서 사용되는 I/O 또는 SQL 스레드) 나타냅니다. 시스템 사용자의 경우 호스트 열에 지정된 호스트가 없습니다. 인증되지 않은 사용자는 클라이언트 연결과 연관되었지만 클라이언트 사용자의 인증이 아직 발생하지 않은 스레드를 나타냅니다. event_scheduler 예약된 이벤트를 모니터링하는 스레드를 나타냅니다.

 

• HOST

명령문을 발행하는 클라이언트의 호스트 이름 (호스트가없는 시스템 사용자 제외). TCP / IP 연결의 호스트 이름은 host_name : client_port 형식으로보고되어 어떤 클라이언트가 무엇을하고 있는지 쉽게 확인할  있습니다.

 

• DB

스레드의 기본 데이터베이스 또는 선택되지 않은 경우 NULL입니다.

 

• COMMAND

스레드가 클라이언트를 대신하여 실행중인 명령 유형 또는 세션이 유휴 상태  경우 절전 모드입니다.  컬럼의 값은 클라이언트/서버 프로토콜의 COM_xxx 명령  Com_xxx 상태 변수에 해당합니다.

 

• TIME

스레드가 현재 상태에 있었던 시간 ()입니다. 복제본 SQL 스레드의 경우 값은 마지막으로 복제  이벤트의 타임 스탬프와 복제본 호스트의 실시간 사이의 시간 ()입니다.

 

• STATE

스레드가 수행중인 작업을 나타내는 작업, 이벤트 또는 상태입니다.

대부분의 상태는 매우 빠른 작업에 해당합니다. 스레드가   동안 지정된 상태로 유지되는 경우 조사해야  문제가있을  있습니다.

 

• INFO

스레드가 실행중인 명령문 또는 실행중인 명령문이없는 경우 NULL입니다. 명령문은 서버로 전송  명령문이거나 명령문이 다른 명령문을 실행하는 경우 가장 안쪽 명령문   있습니다. 예를 들어 CALL 문이 SELECT 문을 실행하는 저장 프로 시저를 실행하는 경우 INFO 값은 SELECT 문을 표시합니다.

 

참고사항

+ PROCESSLIST 비표준 INFORMATION_SCHEMA 테이블입니다.

+ SHOW PROCESSLIST 문의 출력과 마찬가지로 PROCESSLIST 테이블은 PROCESS 권한이있는 경우 다른 사용자에게 속한 스레드를 포함하여 모든 스레드에 대한 정보를 제공합니다. 그렇지 않으면 (PROCESS 권한없이) 익명이 아닌 사용자는 자신의 스레드에 대한 정보에 액세스할  있지만, 다른 사용자의 스레드에는 액세스할  없으며 익명 사용자는 스레드 정보에 액세스할  없습니다.

+ SQL 문이 PROCESSLIST 테이블을 참조하면 MySQL 명령문 실행이 시작될  전체 테이블을   채우므로  동안 읽기 일관성이 유지됩니다. 다중  트랜잭션에는 읽기 일관성이 없습니다.

 

다음 명령문은 동일합니다.

mysql> SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;

mysql> SHOW FULL PROCESSLIST; 

 

Designed by JB FACTORY