[MySQL] Information Schema - InnoDB : 2번째

■ INNODB_METRICS Table

INNODB_METRICS 테이블은 InnoDB 성능 스키마 테이블의 특정 초점 영역을 보완하는 다양한 InnoDB 성능 정보를 제공합니다.

간단한 쿼리로 시스템의 전반적인 상태를 확인할  있습니다.

 

 모니터는 카운터 정보를 수집하도록 계측  InnoDB 소스 코드 내의 지점을 나타냅니다.  카운터를 시작, 중지  재설정   있습니다. 공통 모듈 이름을 사용하여 카운터 그룹에 대해 이러한 작업을 수행  수도 있습니다.

 

기본적으로 비교적 적은 양의 데이터가 수집됩니다. 카운터를 시작, 중지  재설정하려면 카운터 이름, 모듈의 이름, "%" 문자를 사용하는 와일드카드 일치 또는 특수 키워드를 사용하여 시스템 변수 innodb_monitor_enable, innodb_monitor_reset_all  하나를 설정합니다.

 

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

 

• NAME

카운터의 고유한 이름입니다.

 

• SUBSYSTEM

메트릭이 적용되는 InnoDB 측면.

 

• COUNT

카운터가 활성화된 이후의 값입니다.

 

• MAX_COUNT

카운터가 활성화된 이후의 최대 값입니다.

 

• MIN_COUNT

카운터가 활성화된 이후의 최소값입니다.

 

• AVG_COUNT

카운터가 활성화된 이후의 평균 값입니다.

 

• COUNT_RESET

마지막 재설정 이후의 카운터 값입니다. (_RESET 컬럼은 스톱워치의  카운터처럼 작동합니다. 일부 시간 간격 동안 활동을 측정할  있지만 누적 수치는 COUNT, MAX_COUNT 등으로 계속 사용할  있습니다.)

 

• MAX_COUNT_RESET

마지막 재설정 이후 최대 카운터 값입니다.

 

• MIN_COUNT_RESET

마지막 재설정 이후 최소 카운터 값입니다.

 

• AVG_COUNT_RESET

마지막 재설정 이후 평균 카운터 값입니다.

 

• TIME_ENABLED

마지막 시작의 타임 스탬프입니다.

 

• TIME_DISABLED

마지막으로 멈춘 타임 스탬프입니다.

 

• TIME_ELAPSED

카운터가 시작된 이후 경과된 시간()입니다.

 

• TIME_RESET

마지막 재설정의 타임 스탬프입니다.

 

• STATUS

카운터가 여전히 실행 중인지(활성화) 또는 중지(비활성화)되는지 여부입니다.

 

• TYPE

항목이 누적 카운터인지 여부 또는 일부 자원의 현재 가치를 측정합니다.

 

• COMMENT

카운터 설명입니다.

 

 참고사항 1

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME='dml_inserts'\G
*************************** 1. row ***************************
           NAME: dml_inserts
      SUBSYSTEM: dml
          COUNT: 3
      MAX_COUNT: 3
      MIN_COUNT: NULL
      AVG_COUNT: 0.046153846153846156
    COUNT_RESET: 3
MAX_COUNT_RESET: 3
MIN_COUNT_RESET: NULL
AVG_COUNT_RESET: NULL
   TIME_ENABLED: 2014-12-04 14:18:28
  TIME_DISABLED: NULL
   TIME_ELAPSED: 65
     TIME_RESET: NULL
         STATUS: enabled
           TYPE: status_counter
        COMMENT: Number of rows inserted

 

 참고사항 2

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

+ INFORMATION_SCHEMA COLUMNS 테이블 또는 SHOW COLUMNS 문을 사용하여 데이터 유형  기본값을 포함하여이 테이블의 열에 대한 추가 정보를 봅니다.

+ 트랜잭션 카운터 COUNT 값은 성능 스키마 EVENTS_TRANSACTIONS_SUMMARY 테이블에보고  트랜잭션 이벤트 수와 다를  있습니다.

InnoDB 실행되는 트랜잭션  계산하는 반면 성능 스키마는  트랜잭션을 포함하여 서버에서 시작된 모든 중단되지 않은 트랜잭션에 대한 이벤트를 수집합니다.

 

 

■ INNODB_SYS_COLUMNS Table

INNODB_SYS_COLUMNS테이블은 InnoDB 데이터 사전에 있는 SYS_COLUMNS 테이블의 정보와 동일한 InnoDB 테이블 컬럼에 대한 메타 데이터를 제공합니다.

 

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

 

• TABLE_ID

컬럼과 관련된 테이블을 나타내는 식별자입니다. INNODB_SYS_TABLES.TABLE_ID 동일한 값입니다.

 

• NAME

컬럼의 이름입니다. 이러한 이름은 lower_case_table_names 설정에 따라 대문자 또는 소문자일  있습니다. 컬럼에 대한 특별한 시스템 예약 이름은 ​​없습니다.

 

• POS

0부터 시작하여 순차적으로 증가하는 테이블  열의 서수 위치입니다. 컬럼이 삭제되면 나머지 열의 순서가 변경되어 시퀀스에 간격이 없습니다.

가상 생성 컬럼의 POS 값은 컬럼 시퀀스 번호  컬럼의 서수 위치를 인코딩합니다.

 

• MTYPE

"메인 유형" 의미합니다. 컬럼 유형의 숫자 ​​식별자입니다.

1=VARCHAR, 2=CHAR, 3=FIXBINARY, 4=BINARY, 5=BLOB, 6=INT, 7=SYS_CHILD, 8=SYS, 9=FLOAT, 10=DOUBLE, 11=DECIMAL, 12=VARMYSQL, 13=MYSQL, 14=기하학.

 

• PRTYPE

InnoDB "정확한 유형", MySQL 데이터 유형, 문자 세트 코드  NULL허용(nullability) 여부를 나타내는 비트가 있는 바이너리 .

 

• LEN

컬럼 길이 ( : INT 경우 4, BIGINT 경우 8). 멀티 바이트 문자 집합의 문자 컬럼의 경우  길이 값은 VARCHAR(N) 같은 정의를 나타내는  필요한 최대 길이 (바이트)입니다. , 문자 인코딩에 따라 2 * N, 3 * N 등이   있습니다.

 

 예제

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS where TABLE_ID = 71\G
*************************** 1. row ***************************
TABLE_ID: 71
    NAME: col1
     POS: 0
   MTYPE: 6
  PRTYPE: 1027
     LEN: 4
*************************** 2. row ***************************
TABLE_ID: 71
    NAME: col2
     POS: 1
   MTYPE: 2
  PRTYPE: 524542
     LEN: 10
*************************** 3. row ***************************
TABLE_ID: 71
    NAME: col3
     POS: 2
   MTYPE: 1
  PRTYPE: 524303
     LEN: 10

 

 참고사항.

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

+ INFORMATION_SCHEMA COLUMNS 테이블 또는 SHOW COLUMNS 문을 사용하여 데이터 유형  기본값을 포함하여이 테이블의 컬럼에 대한 추가 정보를   있습니다.

 

 

■ INNODB_SYS_DATAFILES Table

INNODB_SYS_DATAFILES 테이블은 InnoDB 데이터 딕셔너리의 SYS_DATAFILES 테이블에있는 정보와 동일한 InnoDB 테이블  파일  일반 테이블 스페이스에 대한 데이터 파일 경로 정보를 제공합니다.

 

- 참고사항

INFORMATION_SCHEMA FILES 테이블은 테이블  파일 테이블 스페이스, 일반 테이블 스페이스, 시스템 테이블 스페이스, 임시 테이블 스페이스  언두 테이블 스페이스 (있는 경우) 포함한 모든 InnoDB 테이블 스페이스 유형에 대한 메타 데이터를 보고합니다.

 

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

 

• SPACE

테이블 스페이스 ID입니다.

 

• PATH

테이블 스페이스 데이터 파일 경로입니다. 테이블  파일 테이블 스페이스가 MySQL 데이터 디렉토리 외부에 생성된 경우, 경로 값은 절대경로 디렉토리 입니다. 그렇지 않으면 경로는 상대경로 데이터 디렉토리입니다.

 

 예제

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_DATAFILES WHERE SPACE = 57\G
*************************** 1. row ***************************
SPACE: 57
 PATH: ./test/t1.ibd

 

 참고사항

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

+ INFORMATION_SCHEMA COLUMNS 테이블 또는 SHOW COLUMNS 문을 사용하여 데이터 유형  기본값을 포함하여이 테이블의 컬럼에 대한 추가 정보를   있습니다.

 

 

■ INNODB_SYS_FIELDS Table

INNODB_SYS_FIELDS 테이블은 InnoDB 데이터 사전에있는 SYS_FIELDS 테이블의 정보와 동일한 InnoDB 인덱스의   (필드) 대한 메타 데이터를 제공합니다.

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

 

• INDEX_ID

  필드와 연관된 인덱스의 식별자입니다. INNODB_SYS_INDEXES.INDEX_ID 동일한 값입니다.

 

• NAME

테이블의 원본 컬럼 이름입니다. INNODB_SYS_COLUMNS.NAME 동일한 값입니다.

 

• POS

0부터 시작하여 순차적으로 증가하는 인덱스   필드의 서수 위치입니다. 컬럼이 삭제되면 나머지 컬럼의 순서가 변경되므로 시퀀스에 간격이 없습니다.

 

 예제

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS WHERE INDEX_ID = 117\G
*************************** 1. row ***************************
INDEX_ID: 117
    NAME: col1
     POS: 0

 

 참고사항.

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

+ INFORMATION_SCHEMA COLUMNS 테이블 또는 SHOW COLUMNS 문을 사용하여 데이터 유형  기본값을 포함하여이 테이블의 컬럼에 대한 추가 정보를   있습니다.

 

 

■ INNODB_SYS_FOREIGN Table

INNODB_SYS_FOREIGN 테이블은 InnoDB 데이터 사전에있는 SYS_FOREIGN 테이블의 정보에 해당하는 InnoDB 외래 키에 대한 메타 데이터를 제공합니다.

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

 

• ID

스키마(데이터베이스)이름 (:test/products_fk) 앞에 오는 외래키 인덱스의 이름(숫자  아님)입니다.

 

• FOR_NAME

 외래  관계에 있는 자식 테이블의 이름입니다.

 

• REF_NAME

 외래  관계에있는 상위 테이블의 이름입니다.

 

• N_COLS

외래  인덱스의 컬럼  입니다.

 

 유형

OR 연결된 외래  열에 대한 정보가 있는 비트 플래그 모음입니다.

0=ON DELETE/UPDATE RESTRICT, 1=ON DELETE CASCADE, 2=ON DELETE SET NULL, 4=ON UPDATE CASCADE, 8=ON UPDATE SET NULL, 16=ON DELETE NO ACTION, 32=ON UPDATE NO ACTION.

 

 참고사항

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

+ INFORMATION_SCHEMA COLUMNS 테이블 또는 SHOW COLUMNS 문을 사용하여 데이터 유형  기본값을 포함하여이 테이블의 컬럼에 대한 추가 정보를   있습니다.

 

 

■ INNODB_SYS_FOREIGN_COLS Table

INNODB_SYS_FOREIGN_COLS 테이블은 InnoDB 데이터 사전에있는 SYS_FOREIGN_COLS 테이블의 정보와 동일한 InnoDB 외래  열에 대한 상태 정보를 제공합니다.

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

 

• ID

INNODB_SYS_FOREIGN.ID 동일한 값을 사용하는  인덱스  필드와 연관된 외래  인덱스입니다.

 

• FOR_COL_NAME

하위 테이블에있는 연관된 컬럼의 이름입니다.

 

• REF_COL_NAME

상위 테이블에 있는 연관된 컬럼의 이름입니다.

 

• POS

0부터 시작하는 외래  인덱스 내에서   필드의 서수 위치입니다.

 

 예제

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS WHERE ID = 'test/fk1'\G
*************************** 1. row ***************************
          ID: test/fk1
FOR_COL_NAME: parent_id
REF_COL_NAME: id
         POS: 0

 

참고사항

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

+ INFORMATION_SCHEMA COLUMNS 테이블 또는 SHOW COLUMNS 문을 사용하여 데이터 유형  기본값을 포함하여이 테이블의 컬럼에 대한 추가 정보를   있습니다.

 

 

■ INNODB_SYS_INDEXES Table

INNODB_SYS_INDEXES 테이블은 InnoDB 데이터 사전의 내부 SYS_INDEXES 테이블에있는 정보와 동일한 InnoDB 인덱스에 대한 메타 데이터를 제공합니다.

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

 

• INDEX_ID

인덱스의 식별자입니다. 인덱스 식별자는 인스턴스의 모든 데이터베이스에서 고유합니다.

 

• NAME

색인의 이름입니다. InnoDB 의해 암시 적으로 생성  대부분의 인덱스는 일관된 이름을 갖지만 인덱스 이름이 반드시 고유하지는 않습니다.

 : 기본  인덱스의 경우 PRIMARY, 지정되지 않은 경우 기본 키를 나타내는 인덱스의 경우 GEN_CLUST_INDEX, 외래  제약 조건의 경우 ID_IND, FOR_IND  REF_IND.

 

• TABLE_ID

인덱스와 관련된 테이블을 나타내는 식별자. INNODB_SYS_TABLES.TABLE_ID 동일한 .

 

• TYPE

인덱스 유형을 식별하는 비트 수준 정보에서 파생된 숫자 값입니다.

0=고유하지 않은 보조 인덱스; 1=자동 생성  클러스터형 인덱스 (GEN_CLUST_INDEX); 2=고유   클러스터형 인덱스; 3=클러스터형 인덱스; 32=전체 텍스트 색인; 64=공간 인덱스; 128=가상 생성 열의 보조 인덱스.

 

• N_FIELDS

인덱스 키의 컬럼 수입니다. GEN_CLUST_INDEX 인덱스의 경우 인덱스가 실제 테이블 열이 아닌 인공 값을 사용하여 생성되기 때문에이 값은 0입니다.

 

• PAGE_NO

인덱스 B-tree 루트 페이지 번호입니다. 전체 텍스트 인덱스의 경우 전체 텍스트 인덱스가 여러 B-tree (보조 테이블) 배치되기 때문에 PAGE_NO컬럼이 사용되지 않고 -1 (FIL_NULL) 설정됩니다.

 

• SPACE

인덱스가 있는 테이블 스페이스의 식별자입니다. 0 InnoDB 시스템 테이블 스페이스를 의미합니다. 다른 숫자는 테이블  파일 모드에서 별도의 .ibd 파일로 생성  테이블을 나타냅니다.

 식별자는 TRUNCATE TABLE 이후에도 동일하게 유지됩니다. 테이블의 모든 인덱스가 테이블과 동일한 테이블 스페이스에 상주하므로  값이 반드시 고유한 것은 아닙니다.

 

• MERGE_THRESHOLD

인덱스 페이지의 병합 임계 값입니다. 행이 삭제되거나 업데이트 작업에 의해 행이 축소될  인덱스 페이지의 데이터 양이 MERGE_THRESHOLD 아래로 떨어지면 InnoDB 인덱스 페이지를 인접한 인덱스 페이지와 병합하려고 시도합니다.

기본 임계 값은 50 %입니다.

 

 참고사항

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES WHERE TABLE_ID = 34\G
*************************** 1. row ***************************
       INDEX_ID: 39
           NAME: GEN_CLUST_INDEX
       TABLE_ID: 34
           TYPE: 1
       N_FIELDS: 0
        PAGE_NO: 3
          SPACE: 23
MERGE_THRESHOLD: 50
*************************** 2. row ***************************
       INDEX_ID: 40
           NAME: i1
       TABLE_ID: 34
           TYPE: 0
       N_FIELDS: 1
        PAGE_NO: 4
          SPACE: 23
MERGE_THRESHOLD: 50

 

 메모

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

+ INFORMATION_SCHEMA COLUMNS 테이블 또는 SHOW COLUMNS 문을 사용하여 데이터 유형  기본값을 포함하여이 테이블의 컬럼에 대한 추가 정보를   있습니다.

 

 

■ INNODB_SYS_TABLES Table

INNODB_SYS_TABLES 테이블은 InnoDB 데이터 딕셔너리의 SYS_TABLES 테이블 정보와 동일한 InnoDB 테이블에 대한 메타 데이터를 제공합니다.

 

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

 

• TABLE_ID

InnoDB 테이블의 식별자입니다.  값은 인스턴스의 모든 데이터베이스에서 고유합니다.

 

• NAME

적절한 경우 스키마(데이터베이스) 이름이 앞에 오는 테이블 이름 (:test/t1). 데이터베이스  사용자 테이블의 이름은 원래 정의된 것과 동일한 대소 문자이며 lower_case_table_names 설정의 영향을 받을  있습니다.

 

• FLAG

테이블 형식  저장소 특성에 대한 비트 수준 정보를 나타내는 숫자 값입니다.

 

• N_COLS

테이블의 컬럼 수입니다. 보고된 수에는 InnoDB (DB_ROW_ID, DB_TRX_ID  DB_ROLL_PTR) 의해 생성된 3개의 숨겨진 컬럼이 포함됩니다. 보고된 수에는 가상 생성 컬럼도 포함됩니다 (있는 경우).

 

• SPACE

테이블이 있는 테이블 스페이스의 식별자입니다. 0 InnoDB 시스템 테이블 스페이스를 의미합니다. 다른 숫자는 테이블당 파일 테이블 스페이스 또는 일반 테이블 스페이스를 나타냅니다.  식별자는 TRUNCATE TABLE  이후에도 동일하게 유지됩니다.

테이블당 파일 테이블 스페이스의 경우  식별자는 인스턴스의 모든 데이터베이스에 있는 테이블에 대해 고유합니다.

 

• FILE_FORMAT

테이블의 파일 형식 (Antelope 또는 Barracuda).

 

• ROW_FORMAT

테이블의  형식 (Compact, Redundant, Dynamic 또는 Compressed).

 

• ZIP_PAGE_SIZE

zip 페이지 크기입니다. 압축된  형식의 테이블에만 적용됩니다.

 

• SPACE_TYPE

테이블이 속한 테이블 스페이스의 유형입니다. 가능한 값은 시스템 테이블 스페이스의 경우 System, 일반 테이블 스페이스의 경우 General, 테이블당 파일 테이블 스페이스의 경우 Single입니다.

CREATE TABLE 또는 ALTER TABLE TABLESPACE = innodb_system 사용하여 시스템 테이블 스페이스에 할당된 테이블의 SPACE_TYPE 일반입니다.

 

 예제

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE TABLE_ID = 214\G
*************************** 1. row ***************************
     TABLE_ID: 214
         NAME: test/t1
         FLAG: 129
       N_COLS: 4
        SPACE: 233
  FILE_FORMAT: Antelope
   ROW_FORMAT: Compact
ZIP_PAGE_SIZE: 0
   SPACE_TYPE: General

 

 참고사항.

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

+ INFORMATION_SCHEMA COLUMNS 테이블 또는 SHOW COLUMNS 문을 사용하여 데이터 유형  기본값을 포함하여이 테이블의 열에 대한 추가 정보를   있습니다.

 

 

■ INNODB_SYS_TABLESPACES Table

INNODB_SYS_TABLESPACES 테이블은 InnoDB 데이터 딕셔너리의 SYS_TABLESPACES 테이블에 있는 정보와 동일한 InnoDB 테이블당 파일  일반 테이블 스페이스에 대한 메타 데이터를 제공합니다.

 

 참고사항

INFORMATION_SCHEMA FILES 테이블은 테이블  파일 테이블 스페이스, 일반 테이블 스페이스, 시스템 테이블 스페이스, 임시 테이블 스페이스  언두 테이블 스페이스(있는 경우) 포함한 모든 InnoDB 테이블 스페이스 유형에 대한 메타 데이터를 보고합니다.

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

 

• SPACE

테이블 스페이스 ID입니다.

 

• NAME

스키마 (데이터베이스)  테이블 이름.

 

• FLAG

테이블 스페이스 형식  스토리지 특성에 대한 비트 수준 정보를 나타내는 숫자 값입니다.

 

• FILE_FORMAT

테이블 스페이스 파일 형식입니다. 예를 들어 Antelope, Barracuda 또는 Any (일반 테이블 스페이스는 모든  형식을 지원함)입니다.  필드의 데이터는 .ibd 파일에있는 테이블 스페이스 플래그 정보에서 해석됩니다.

 

• ROW_FORMAT

테이블 스페이스  형식(컴팩트 또는 중복, 동적 또는 압축).  컬럼의 데이터는 .ibd 파일에있는 테이블 스페이스 플래그 정보에서 해석됩니다.

 

• PAGE_SIZE

테이블 스페이스 페이지 크기입니다.  컬럼의 데이터는 .ibd 파일에있는 테이블 스페이스 플래그 정보에서 해석됩니다.

 

• ZIP_PAGE_SIZE

테이블 스페이스 zip 페이지 크기입니다.  컬럼의 데이터는 .ibd 파일에있는 테이블 스페이스 플래그 정보에서 해석됩니다.

 

• SPACE_TYPE

테이블 스페이스 유형입니다. 가능한 값은 일반 테이블 스페이스의 경우 General, 테이블  파일 테이블 스페이스의 경우 Single입니다.

 

• FS_BLOCK_SIZE

 펀칭에 사용되는 단위 크기인 파일 시스템 블록 크기입니다.  컬럼은 InnoDB 투명 페이지 압축 기능과 관련이 있습니다.

 

• FILE_SIZE

압축되지 않은 파일의 최대 크기를 나타내는 파일의 외부 크기입니다.  컬럼은 InnoDB 투명(transparent) 페이지 압축 기능과 관련이 있습니다.

 

• ALLOCATED_SIZE

디스크에 할당  공간의 양인 파일의 실제 크기.  열은 InnoDB 투명 페이지 압축 기능과 관련이 있습니다.

 

 예제

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES WHERE SPACE = 26\G
*************************** 1. row ***************************
         SPACE: 26
          NAME: test/t1
          FLAG: 0
   FILE_FORMAT: Antelope
    ROW_FORMAT: Compact or Redundant
     PAGE_SIZE: 16384
 ZIP_PAGE_SIZE: 0
    SPACE_TYPE: Single
 FS_BLOCK_SIZE: 4096
     FILE_SIZE: 98304
ALLOCATED_SIZE: 65536

 

 참고사항

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

+ INFORMATION_SCHEMA COLUMNS 테이블 또는 SHOW COLUMNS 문을 사용하여 데이터 유형  기본값을 포함하여이 테이블의 열에 대한 추가 정보를 봅니다.

+ 테이블 스페이스 플래그는 모든 Antelope 파일 형식에 대해 항상 0이기 때문에 (테이블 플래그와 달리), 테이블 스페이스  형식이 중복 또는 압축인지 여부를이 플래그 정수에서 확인할 방법이 없습니다. 결과적으로 ROW_FORMAT 필드에 가능한 값은 "Compact or Redundant", "Compressed"또는 "Dynamic" 입니다.

+ 일반 테이블 스페이스 도입으로 InnoDB 시스템 테이블 스페이스 데이터 (SPACE 0 ) INNODB_SYS_TABLESPACES 노출됩니다.

 

 

■ INNODB_SYS_TABLESTATS View

INNODB_SYS_TABLESTATS 테이블은 InnoDB 테이블에 대한 낮은 수준의 상태 정보보기를 제공합니다.  데이터는 MySQL 최적화 프로그램에서 InnoDB 테이블을 쿼리할  사용할 인덱스를 계산하는데 사용됩니다.  정보는 디스크에 저장된 데이터가 아닌 메모리  데이터 구조에서 파생됩니다. 해당 내부 InnoDB 시스템 테이블이 없습니다.

InnoDB 테이블은 마지막 서버 재시작 이후 오픈되고 테이블 캐시에서 만료되지 않은 경우,  (VIEW) 표시됩니다. 지속적 통계를 사용할  있는 테이블은 항상  (VIEW) 표시됩니다.

테이블 통계는 인덱싱  컬럼을 수정하는 DELETE 또는 UPDATE 작업에 대해서만 업데이트됩니다. 인덱싱되지 않은 컬럼만 수정하는 작업은 통계를 업데이트하지 않습니다.

ANALYZE TABLE 테이블 통계를 지우고 STATS_INITIALIZED 열을 Uninitialized 설정합니다. 다음에 테이블에 액세스   통계가 다시 수집됩니다.

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

 

• TABLE_ID

통계를 사용할 수있는 테이블을 나타내는 식별자입니다. INNODB_SYS_TABLES.TABLE_ID 동일한 .

 

• NAME

테이블의 이름. INNODB_SYS_TABLES.NAME 동일한 값입니다.

 

• STATS_INITIALIZED

통계가 이미 수집된 경우 값은 초기화되고 그렇지 않은 경우 초기화되지 않습니다.

 

• NUM_ROWS

테이블의 현재 예상  수입니다.  DML 작업 후에 업데이트 됩니다. 커밋되지 않은 트랜잭션이 테이블에 삽입되거나 테이블에서 삭제되는 경우 값이 정확하지 않을  있습니다.

 

• CLUST_INDEX_SIZE

InnoDB 테이블 데이터를 기본키 순서로 유지하는 클러스터형 인덱스를 저장하는 디스크의 페이지  입니다. 테이블에 대한 통계가 아직 수집되지 않은 경우  값은 (NULL)  있습니다.

 

• OTHER_INDEX_SIZE

테이블에 대한 모든 보조 인덱스를 저장하는 디스크의 페이지 수입니다. 테이블에 대한 통계가 아직 수집되지 않은 경우  값은 (NULL)  있습니다.

 

• MODIFIED_COUNTER

INSERT, UPDATE, DELETE 같은 DML 작업과 외래 키의 계단식 작업으로 수정된  수입니다.  컬럼은 테이블 통계가 다시 계산  때마다 재설정됩니다.

 

• AUTOINC

auto-increment 기반 작업에 대해 발급될 다음 번호입니다. AUTOINC 값이 변경되는 비율은 자동 증가 번호가 요청된 횟수와 요청당 부여된 번호 수에 따라 다릅니다.

 

• REF_COUNT

 카운터가 0 도달하면 테이블 메타 데이터가 테이블 캐시에서 제거될  있습니다.

 

 예제

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS where TABLE_ID = 71\G
*************************** 1. row ***************************
         TABLE_ID: 71
             NAME: test/t1
STATS_INITIALIZED: Initialized
         NUM_ROWS: 1
 CLUST_INDEX_SIZE: 1
 OTHER_INDEX_SIZE: 0
 MODIFIED_COUNTER: 1
          AUTOINC: 0
        REF_COUNT: 1

 

 참고사항

+  표는 주로 전문가 수준의 성능 모니터링이나 MySQL  성능 관련 확장을 개발할때 유용합니다.

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

+ INFORMATION_SCHEMA COLUMNS 테이블 또는 SHOW COLUMNS 문을 사용하여 데이터 유형  기본값을 포함하여이 테이블의 열에 대한 추가 정보를 봅니다.

 

 

■ INNODB_SYS_VIRTUAL Table

INNODB_SYS_VIRTUAL 테이블은 InnoDB 데이터 딕셔너리의 SYS_VIRTUAL 테이블에있는 정보와 동일한 InnoDB 가상 생성 컬럼과 가상 생성 컬럼의 기반이 되는 컬럼에 대한 메타 데이터를 제공합니다.

가상 생성 컬럼의 기반이되는  컬럼에 대한 행이 INNODB_SYS_VIRTUAL 테이블에 나타납니다.

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

 

• TABLE_ID

가상 컬럼과 관련된 테이블을 나타내는 식별자입니다. INNODB_SYS_TABLES.TABLE_ID 동일한 값입니다.

 

• POS

가상 생성 컬럼의 위치 값입니다. 컬럼 순서 번호와 서수 위치를 인코딩하기 때문에 값이 큽니다. 값을 계산하는  사용되는 공식은 비트 연산을 사용합니다.

 

((InnoDB 인스턴스에 대해 n 번째 가상 생성  + 1) << 16) + 가상 생성 컬럼의 서수 위치

예를 들어 InnoDB 인스턴스의  번째 가상 생성 컬럼이 테이블의  번째 열인 경우 공식은 (0 + 1) << 16) + 2입니다. InnoDB 인스턴스의  번째 가상 생성 컬럼은 항상 숫자 0입니다. 테이블의  번째 컬럼인 가상 생성 컬럼의 서수 위치는 2입니다. 서수 위치는 0부터 계산됩니다.

 

• BASE_POS

가상 생성 컬럼이 기반으로하는 컬럼의 서수 위치입니다.

 

 예제

mysql> CREATE TABLE `t1` (
         `a` int(11) DEFAULT NULL,
         `b` int(11) DEFAULT NULL,
         `c` int(11) GENERATED ALWAYS AS (a+b) VIRTUAL,
         `h` varchar(10) DEFAULT NULL
       ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_VIRTUAL
       WHERE TABLE_ID IN
         (SELECT TABLE_ID FROM INFORMATION_SCHEMA.INNODB_TABLES
          WHERE NAME LIKE "test/t1");
+----------+-------+----------+
| TABLE_ID | POS   | BASE_POS |
+----------+-------+----------+
|       95 | 65538 |        0 |
|       95 | 65538 |        1 |
+----------+-------+----------+

 

 참고사항

+ 다음 표와 같이 가상 생성 컬럼에 상수 값이 지정되면 컬럼에 대한 항목이 INNODB_SYS_VIRTUAL 테이블에 나타나지 않습니다. 항목이 표시 되려면 가상 생성 열에 기본 컬럼이 있어야합니다.

CREATE TABLE `t1` (
  `a` int(11) DEFAULT NULL,
  `b` int(11) DEFAULT NULL,
  `c` int(11) GENERATED ALWAYS AS (5) VIRTUAL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

그러나 이러한 컬럼에 대한 메타 데이터는 INNODB_SYS_COLUMNS 테이블에 나타납니다.

 

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

+ INFORMATION_SCHEMA COLUMNS 테이블 또는 SHOW COLUMNS 문을 사용하여 데이터 유형  기본값을 포함하여이 테이블의 컬럼에 대한 추가 정보를 봅니다.

 

 

■ INNODB_TEMP_TABLE_INFO Table

INNODB_TEMP_TABLE_INFO 테이블은 InnoDB 인스턴스에서 활성화된 사용자 생성 InnoDB 임시 테이블에 대한 정보를 제공합니다. 옵티마이저가 사용하는 내부 InnoDB 임시 테이블에 대한 정보는 제공하지 않습니다. INNODB_TEMP_TABLE_INFO 테이블은 처음 쿼리할  생성되고 메모리에만 존재하며 디스크에 유지되지 않습니다.

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

 

• TABLE_ID

임시 테이블의 테이블 ID입니다.

 

• NAME

임시 테이블의 이름입니다.

 

• N_COLS

임시 테이블의 컬럼수입니다.  숫자에는 InnoDB에서 생성  3개의 숨겨진 컬럼 (DB_ROW_ID, DB_TRX_ID  DB_ROLL_PTR) 포함됩니다.

 

• SPACE

임시 테이블이 있는 임시 테이블 스페이스의 ID입니다. 5.7에서는 압축되지 않은 InnoDB 임시 테이블이 공유 임시 테이블 스페이스에 상주합니다. 공유 임시 테이블 스페이스에 대한 데이터 파일은 innodb_temp_data_file_path 시스템 변수로 정의됩니다. 기본적으로 데이터 디렉토리에 있는 ibtmp1이라는 공유 임시 테이블 스페이스에 대한 단일 데이터 파일이 있습니다. 압축된 임시 테이블은 tmpdir에서 정의한 임시 파일 디렉토리에 있는 별도의 테이블당 파일 테이블 스페이스에 있습니다. 임시 테이블 스페이스 ID 서버 재시작시 동적으로 생성되는 0 아닌 값입니다.

 

• PER_TABLE_TABLESPACE

TRUE 값은 임시 테이블이 별도의 테이블당 파일 테이블 스페이스에 있음을 나타냅니다. FALSE 값은 임시 테이블이 공유 임시 테이블 스페이스에 있음을 나타냅니다.

 

• IS_COMPRESSED

TRUE 값은 임시 테이블이 압축되었음을 나타냅니다.

 

 예제

mysql> CREATE TEMPORARY TABLE t1 (c1 INT PRIMARY KEY) ENGINE=INNODB;

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G
*************************** 1. row ***************************
            TABLE_ID: 38
                NAME: #sql26cf_6_0
              N_COLS: 4
               SPACE: 52
PER_TABLE_TABLESPACE: FALSE
       IS_COMPRESSED: FALSE

 

 참고사항

+  표는 주로 전문가 수준의 모니터링에 유용합니다.

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

+ INFORMATION_SCHEMA COLUMNS 테이블 또는 SHOW COLUMNS 문을 사용하여 데이터 유형  기본값을 포함하여이 테이블의 열에 대한 추가 정보를   있습니다.

 

 

■ INNODB_TRX Table

INNODB_TRX 테이블은 트랜잭션이 잠금 대기 중인지 여부, 트랜잭션 시작 시점, 트랜잭션이 실행중인 SQL (있는 경우) 포함하여 현재 InnoDB 내부에서 실행중인 모든 트랜잭션에 대한 정보를 제공합니다.

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

 

• TRX_ID

InnoDB 내부의 고유  트랜잭션 ID 번호. 이러한 ID 읽기 전용이고 잠금이없는 트랜잭션에 대해서는 생성되지 않습니다.

 

• TRX_WEIGHT

변경된  수와 트랜잭션에 의해 잠긴  수를 반영하는(정확한 수는 아니지만) 트랜잭션의 가중치입니다. 교착 상태를 해결하기 위해 InnoDB 롤백  "희생자(VICTIM)" 가중치가 가장 작은 트랜잭션을 선택합니다.  트랜잭션 테이블을 변경한 트랜잭션은 변경  잠긴 행의 수에 관계없이 다른 것보다  무거운 것으로 간주됩니다.

 

• TRX_STATE

트랜잭션 실행 상태입니다. 허용되는 값은 RUNNING, LOCK WAIT, ROLLING BACK  COMMITTING입니다.

 

• TRX_STARTED

트랜잭션 시작 시간.

 

• TRX_REQUESTED_LOCK_ID

TRX_STATE LOCK WAIT 경우 트랜잭션이 현재 대기중인 잠금의 ID입니다. 그렇지 않으면 NULL입니다. 잠금에 대한 세부 사항을 얻으려면이 컬럼을 INNODB_LOCKS 테이블의 LOCK_ID 컬럼과 결합하십시오.

 

• TRX_WAIT_STARTED

TRX_STATE LOCK WAIT 경우 트랜잭션이 잠금 대기를 시작한 시간입니다. 그렇지 않으면 NULL입니다.

 

• TRX_MYSQL_THREAD_ID

MySQL 스레드 ID입니다. 스레드에 대한 세부 정보를 얻으려면  컬럼을 INFORMATION_SCHEMA PROCESSLIST 테이블의 ID 컬럼과 조인합니다.

 

• TRX_QUERY

트랜잭션에서 실행중인 SQL 문입니다.

 

• TRX_OPERATION_STATE

트랜잭션의 현재 작업(있는 경우)입니다. 그렇지 않으면 NULL입니다.

 

• TRX_TABLES_IN_USE

 트랜잭션의 현재 SQL 문을 처리하는 동안 사용된 InnoDB 테이블 수입니다.

 

• TRX_TABLES_LOCKED

현재 SQL 문에  잠금이 있는 InnoDB 테이블 수입니다. (이들은 테이블 잠금이 아니라  잠금이기 때문에 일부 행이 잠긴 경우에도 여러 트랜잭션에서 테이블을 읽고   있습니다.)

 

• TRX_LOCK_STRUCTS

트랜잭션이 예약  잠금 수입니다.

 

• TRX_LOCK_MEMORY_BYTES

메모리에서  트랜잭션의 잠금 구조가 차지하는  크기입니다.

 

• TRX_ROWS_LOCKED

 트랜잭션에 의해 잠긴 대략적인  수입니다. 값에는 물리적으로 존재하지만 트랜잭션에 표시되지 않는 삭제 표시 행이 포함될  있습니다.

 

• TRX_ROWS_MODIFIED

 트랜잭션에서 수정  삽입   수입니다.

 

• TRX_CONCURRENCY_TICKETS

innodb_concurrency_tickets 시스템 변수에 지정된대로 스왑 아웃되기 전에 현재 트랜잭션이 수행   있는 작업의 양을 나타내는 값입니다.

 

• TRX_ISOLATION_LEVEL

현재 트랜잭션의 격리 수준입니다.

 

• TRX_UNIQUE_CHECKS

현재 트랜잭션에 대해 고유한(unique) 검사가 켜져 있는지 여부입니다. 예를 들어 대량 데이터로드 중에 해제   있습니다.

 

• TRX_FOREIGN_KEY_CHECKS

현재 트랜잭션에 대해 외래키 검사가 켜져 있는지 여부입니다. 예를 들어 대량 데이터로드 중에 해제   있습니다.

 

• TRX_LAST_FOREIGN_KEY_ERROR

마지막 외래키 오류(있는 경우) 대한 자세한 오류 메시지입니다. 그렇지 않으면 NULL입니다.

 

• TRX_ADAPTIVE_HASH_LATCHED

적응형 해시 인덱스가 현재 트랜잭션에 의해 잠겨 있는지 여부. 적응형 해시 인덱스 검색 시스템이 분할되면 단일 트랜잭션이 전체 적응형 해시 인덱스를 잠그지 않습니다. 적응형 해시 인덱스 파티셔닝은 innodb_adaptive_hash_index_parts 의해 제어되며 기본적으로 8 설정됩니다.

 

• TRX_ADAPTIVE_HASH_TIMEOUT

적응형 해시 인덱스에 대해 검색 래치를 즉시 포기할지 아니면 MySQL 호출간에 예약할지 여부입니다. 적응  해시 인덱스 경합이없는 경우  값은 0으로 유지되고 명령문은 완료  때까지 래치를 예약합니다. 경합 시간 동안에는 0으로 카운트 다운되고 문은   조회  즉시 래치를 해제합니다. 적응  해시 인덱스 검색 시스템이 분할되면 (innodb_adaptive_hash_index_parts 의해 제어 ) 값은 0으로 유지됩니다.

 

• TRX_IS_READ_ONLY

 1 트랜잭션이 읽기 전용임을 나타냅니다.

 

• TRX_AUTOCOMMIT_NON_LOCKING

 1 트랜잭션이 FOR UPDATE 또는 LOCK IN SHARED MODE 절을 사용하지 않는 SELECT 문이며 트랜잭션에  명령문 하나만 포함되도록 자동 커밋이 활성화된 상태로 실행 중임을 나타냅니다.  컬럼과 TRX_IS_READ_ONLY 모두 1이면 InnoDB 트랜잭션을 최적화하여 테이블 데이터를 변경하는 트랜잭션과 관련된 오버 헤드를 줄입니다.

 

 예제

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX\G
*************************** 1. row ***************************
                    trx_id: 1510
                 trx_state: RUNNING
               trx_started: 2014-11-19 13:24:40
     trx_requested_lock_id: NULL
          trx_wait_started: NULL
                trx_weight: 586739
       trx_mysql_thread_id: 2
                 trx_query: DELETE FROM employees.salaries WHERE salary > 65000
       trx_operation_state: updating or deleting
         trx_tables_in_use: 1
         trx_tables_locked: 1
          trx_lock_structs: 3003
     trx_lock_memory_bytes: 450768
           trx_rows_locked: 1407513
         trx_rows_modified: 583736
   trx_concurrency_tickets: 0
       trx_isolation_level: REPEATABLE READ
         trx_unique_checks: 1
    trx_foreign_key_checks: 1
trx_last_foreign_key_error: NULL
 trx_adaptive_hash_latched: 0
 trx_adaptive_hash_timeout: 10000
          trx_is_read_only: 0
trx_autocommit_non_locking: 0

 

 참고사항

 표를 사용하면 동시로드가 많은 시간에 발생하는 성능 문제를 진단하는  도움이됩니다.

 테이블을 쿼리하려면 PROCESS 권한이 있어야합니다.

INFORMATION_SCHEMA COLUMNS 테이블 또는 SHOW COLUMNS문을 사용하여 데이터 유형  기본값을 포함하여  테이블의 컬럼에 대한 추가 정보를   있습니다.

Designed by JB FACTORY