[MySQL] Information Schema - InnoDB : 1번째

■ INNODB_BUFFER_PAGE Table

INNODB_BUFFER_PAGE 테이블은 InnoDB 버퍼 풀의 페이지에 대한 정보를 제공합니다.

 

중요사항

INNODB_BUFFER_PAGE 테이블을 쿼리하면 성능에 영향을 있습니다. 성능 영향을 인식하고 허용할 있다고 결정하지 않는한 프로덕션 시스템에서이 테이블을 쿼리하면 안됩니다.

프로덕션 시스템의 성능에 영향을 주지 않으려면 조사하려는 문제를 재현하고 테스트 인스턴스에서 버퍼풀 통계를 쿼리합니다.

 

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

 

• POOL_ID

버퍼 ID입니다. 여러 버퍼 인스턴스를 구별하기위한 식별자입니다.

 

• BLOCK_ID

버퍼 블록 ID입니다.

 

• SPACE

테이블 스페이스 ID입니다. INNODB_SYS_TABLES.SPACE 동일한 .

 

• PAGE_NUMBER

페이지 번호.

 

• PAGE_TYPE

페이지 유형입니다. 다음 표는 허용되는 값을 보여줍니다.

테이블 1. INNODB_BUFFER_PAGE.PAGE_TYPE Values

Page Type

Description

ALLOCATED

새로 할당 페이지

BLOB

압축되지 않은 BLOB페이지

COMPRESSED_BLOB2

후속 압축 BLOB 페이지

COMPRESSED_BLOB

첫번째로 압축된 BLOB페이지

EXTENT_DESCRIPTOR

익스텐트 설명자 페이지

FILE_SPACE_HEADER

파일 공간 헤더

IBUF_BITMAP

인서트 버퍼 비트맵

IBUF_FREE_LIST

인서트 버퍼 여유 리스트

IBUF_INDEX

인서트 버퍼 인덱스

INDEX

B-tree 노드

INODE

Index 노드

RTREE_INDEX

R-tree 인덱스

SYSTEM

시스템 페이지

TRX_SYSTEM

트랜잭션 시스템 데이터

UNDO_LOG

언두 로그 페이지

UNKNOWN

알수 없음

 

• FLUSH_TYPE

플러시 유형입니다.

 

• FIX_COUNT

버퍼 내에서이 블록을 사용하는 스레드 수입니다. 0이면 블록이 제거 있습니다.

 

• IS_HASHED

페이지에 해시 인덱스가 작성되었는지 여부.

 

• NEWEST_MODIFICATION

가장 최근 수정된 로그 시퀀스 번호입니다.

 

• OLDEST_MODIFICATION

가장 오래된 수정의 로그 시퀀스 번호입니다.

 

• ACCESS_TIME

페이지의 번째 액세스 시간을 판단하는 사용되는 추상 번호입니다.

 

• TABLE_NAME

페이지가 속한 테이블의 이름입니다. 컬럼은 PAGE_TYPE 값이 INDEX 페이지에만 적용됩니다.

 

• INDEX_NAME

페이지가 속한 인덱스의 이름입니다. 클러스터형 인덱스 또는 보조 인덱스의 이름이 있습니다. 컬럼은 PAGE_TYPE값이 INDEX 페이지에만 적용됩니다.

 

• NUMBER_RECORDS

페이지 내의 레코드 수입니다.

 

• DATA_SIZE

레코드 크기의 합계입니다. 열은 PAGE_TYPE 값이 INDEX 페이지에만 적용됩니다.

 

• COMPRESSED_SIZE

압축 페이지 크기입니다. 압축되지 않은 페이지의 경우 NULL입니다.

 

• PAGE_STATE

페이지 상태입니다. 다음 표는 허용되는 값을 보여줍니다.

 

테이블 2 : INNODB_BUFFER_PAGE.PAGE_STATE

Page State

Description

FILE_PAGE

버퍼가 할당된 파일 페이지

MEMORY

주 메모리 개체를 포함

NOT_USED

여유 리스트

NULL

압축된 페이지 정리, 플러시 목록의 압축된 페이지, 버퍼풀 감시 센티널로 사용되는 페이지

READY_FOR_USE

여유 페이지. 사용할 수 있는 페이지

REMOVE_HASH

여유 목록에 배치하기 전에 해시 인덱스를 제거해야 하는 목록.

 

 

• IO_FIX

페이지에 대해 I / O 보류 중인지 여부 : IO_NONE = 보류중인 I / O 없음, IO_READ = 읽기 보류, IO_WRITE = 쓰기 보류.

 

• IS_OLD

블록이 LRU 목록에있는 이전 블록의 하위 목록에 있는지 여부입니다.

 

• FREE_PAGE_CLOCK

블록이 LRU 목록의 위에 마지막으로 배치되었을 freed_page_clock 카운터의 값입니다. freed_page_clock 카운터는 LRU 목록의 끝에서 제거 블록 수를 추적합니다.

 

예제

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE LIMIT 1\G
*************************** 1. row ***************************
            POOL_ID: 0
           BLOCK_ID: 0
              SPACE: 97
        PAGE_NUMBER: 2473
          PAGE_TYPE: INDEX
         FLUSH_TYPE: 1
          FIX_COUNT: 0
          IS_HASHED: YES
NEWEST_MODIFICATION: 733855581
OLDEST_MODIFICATION: 0
        ACCESS_TIME: 3378385672
         TABLE_NAME: `employees`.`salaries`
         INDEX_NAME: PRIMARY
     NUMBER_RECORDS: 468
          DATA_SIZE: 14976
    COMPRESSED_SIZE: 0
         PAGE_STATE: FILE_PAGE
             IO_FIX: IO_NONE
             IS_OLD: YES
    FREE_PAGE_CLOCK: 66

 

참고사항

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

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

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

+ 테이블, 테이블 , 파티션 또는 인덱스가 삭제되면 다른 데이터를위한 공간이 필요할 때까지 관련 페이지가 버퍼 풀에 남아 있습니다.

INNODB_BUFFER_PAGE 테이블은 버퍼 풀에서 제거 때까지 이러한 페이지에 대한 정보를보고합니다.

 

 

■ INNODB_BUFFER_PAGE_LRU Table

INNODB_BUFFER_PAGE_LRU 테이블은 InnoDB 버퍼풀의 페이지에 대한 정보를 제공합니다. 특히 버퍼풀이 가득차면 버퍼풀에서 제거할 페이지를 결정하는 LRU 목록에서 순서가 지정됩니다.

INNODB_BUFFER_PAGE_LRU 테이블에는 INNODB_BUFFER_PAGE 테이블과 동일한 컬럼이 있습니다. , INNODB_BUFFER_PAGE_LRU 테이블에는 BLOCK_ID PAGE_STATE 컬럼 대신 LRU_POSITION COMPRESSED 컬럼이 있습니다.

 

+ 중요사항.

INNODB_BUFFER_PAGE_LRU 테이블을 쿼리하면 성능에 영향을 미칠 있습니다. 성능 영향을 인식하고 허용 있다고 결정하지 않는 프로덕션 시스템에서이 테이블을 쿼리하면 안됩니다.

프로덕션 시스템의 성능에 영향을주지 않으려면 조사하려는 문제를 재현하고 테스트 인스턴스에서 버퍼풀 통계를 쿼리합니다.

 

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

 

• POOL_ID

버퍼풀 ID입니다. 여러 버퍼풀 인스턴스를 구별하기위한 식별자입니다.

 

• LRU_POSITION

LRU 목록에서 페이지의 위치입니다.

 

• SPACE

테이블 스페이스 ID입니다. INNODB_SYS_TABLES.SPACE 동일한 .

 

• PAGE_NUMBER

페이지 번호.

 

• PAGE_TYPE

페이지 유형입니다. 다음 표는 허용되는 값을 보여줍니다.

 

테이블 : INNODB_BUFFER_PAGE_LRU.PAGE_TYPE Values

Page Type

Description

ALLOCATED

Freshly allocated page

BLOB

Uncompressed BLOB page

COMPRESSED_BLOB2

Subsequent comp BLOB page

COMPRESSED_BLOB

First compressed BLOB page

EXTENT_DESCRIPTOR

Extent descriptor page

FILE_SPACE_HEADER

File space header

IBUF_BITMAP

Insert buffer bitmap

IBUF_FREE_LIST

Insert buffer free list

IBUF_INDEX

Insert buffer index

INDEX

B-tree node

INODE

Index node

RTREE_INDEX

R-tree index

SYSTEM

System page

TRX_SYSTEM

Transaction system data

UNDO_LOG

Undo log page

UNKNOWN

Unknown

 

• FLUSH_TYPE

플러시 유형입니다.

 

• FIX_COUNT

버퍼 내에서이 블록을 사용하는 스레드 수입니다. 0이면 블록이 제거 있습니다.

 

• IS_HASHED

페이지에 해시 인덱스가 작성되었는지 여부.

 

• NEWEST_MODIFICATION

가장 최근에 수정된 로그 시퀀스 번호입니다.

 

• OLDEST_MODIFICATION

가장 오래된 수정의 로그 시퀀스 번호입니다.

 

• ACCESS_TIME

페이지의 번째 액세스 시간을 판단하는 사용되는 추상 번호입니다.

 

• TABLE_NAME

페이지가 속한 테이블의 이름입니다. 컬럼은 PAGE_TYPE 값이 INDEX 페이지에만 적용됩니다.

 

• INDEX_NAME

페이지가 속한 인덱스의 이름입니다. 클러스터형 인덱스 또는 보조 인덱스의 이름이 있습니다. 컬럼은 PAGE_TYPE 값이 INDEX 페이지에만 적용됩니다.

 

• NUMBER_RECORDS

페이지 내의 레코드 수입니다.

 

• DATA_SIZE

레코드 크기의 합계입니다. 열은 PAGE_TYPE 값이 INDEX 페이지에만 적용됩니다.

 

• COMPRESSED_SIZE

압축 페이지 크기입니다. 압축되지 않은 페이지의 경우 NULL입니다.

 

• COMPRESSED

페이지가 압축되었는지 여부.

 

• IO_FIX

페이지에 대해 I/O 보류 중인지 여부 : IO_NONE=보류중인 I/O 없음, IO_READ=읽기 보류, IO_WRITE=쓰기 보류.

 

• IS_OLD

블록이 LRU 목록에있는 이전 블록의 하위 목록에 있는지 여부.

 

• FREE_PAGE_CLOCK

블록이 LRU목록의 위에 마지막으로 배치되었을 freed_page_clock 카운터의 값입니다. freed_page_clock 카운터는 LRU 목록의 끝에서 제거된 블록 수를 추적합니다.

 

예제

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU LIMIT 1\G
*************************** 1. row ***************************
            POOL_ID: 0
       LRU_POSITION: 0
              SPACE: 97
        PAGE_NUMBER: 1984
          PAGE_TYPE: INDEX
         FLUSH_TYPE: 1
          FIX_COUNT: 0
          IS_HASHED: YES
NEWEST_MODIFICATION: 719490396
OLDEST_MODIFICATION: 0
        ACCESS_TIME: 3378383796
         TABLE_NAME: `employees`.`salaries`
         INDEX_NAME: PRIMARY
     NUMBER_RECORDS: 468
          DATA_SIZE: 14976
    COMPRESSED_SIZE: 0
         COMPRESSED: NO
             IO_FIX: IO_NONE
             IS_OLD: YES
    FREE_PAGE_CLOCK: 0

 

참고사항

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

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

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

+ 테이블을 쿼리하려면 MySQL 버퍼 풀에있는 활성 페이지 수의 64바이트보다 연속 메모리 블록을 할당해야 있습니다. 할당은 특히 멀티 기가 바이트 버퍼 풀이있는 시스템의 경우 잠재적으로 메모리 부족 오류를 유발할 있습니다.

+ 테이블을 쿼리하려면 MySQL LRU 목록을 순회하는 동안 버퍼 풀을 나타내는 데이터 구조를 잠그도록 해야합니다. 이는 특히 멀티 기가 바이트 버퍼 풀이있는 시스템의 경우 동시성을 줄일 있습니다.

+ 테이블, 테이블 , 파티션 또는 인덱스가 삭제되면 다른 데이터에 공간이 필요할 때까지 관련 페이지가 버퍼 풀에 남아 있습니다. INNODB_BUFFER_PAGE_LRU 테이블은 버퍼풀에서 제거될때까지 이러한 페이지에 대한 정보를 보고합니다.

 

 

■ INNODB_BUFFER_POOL_STATS Table

INNODB_BUFFER_POOL_STATS 테이블은 SHOW ENGINE INNODB STATUS 출력에 제공된것과 동일한 버퍼풀 정보를 많이 제공합니다. InnoDB 버퍼풀 서버 상태 변수를 사용하여 동일한 정보를 많이 얻을 수도 있습니다.

버퍼 풀에서 페이지를 "최신(young)"또는 "최신이 아닌(not young)"으로 만드는 개념은 버퍼풀 데이터 구조의 헤드와 테일에있는 하위 목록간에 페이지를 전송하는 것을 의미합니다.

버퍼 풀에서 "최신"페이지는 오래 사용되는 반면 "최신이 아닌(not young)"페이지는 제거 지점에 훨씬 가깝게 이동됩니다.

 

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

 

• POOL_ID

버퍼 ID입니다. 여러 버퍼 인스턴스를 구별하기위한 식별자입니다.

 

• POOL_SIZE

페이지 단위의 InnoDB 버퍼풀 크기.

 

• FREE_BUFFERS

InnoDB 버퍼풀의 사용 가능한 페이지 입니다.

 

• DATABASE_PAGES

데이터를 포함하는 InnoDB 버퍼 풀의 페이지 수입니다. 숫자에는 더티 페이지와 깨끗한 페이지가 모두 포함됩니다.

 

• OLD_DATABASE_PAGES

이전 버퍼 하위 목록의 페이지 수입니다.

 

• MODIFIED_DATABASE_PAGES

수정된(더티) 데이터베이스 페이지 수입니다.

 

• PENDING_DECOMPRESS

압축 해제를 보류중인 페이지 수입니다.

 

• PENDING_READS

보류중인 읽기 수입니다.

 

• PENDING_FLUSH_LRU

LRU에서 플러시를 보류중인 페이지 수입니다.

 

• PENDING_FLUSH_LIST

플러시 목록에서 플러시 보류중인 페이지 수입니다.

 

• PAGES_MADE_YOUNG

젊게 만든 페이지 수입니다.

 

• PAGES_NOT_MADE_YOUNG

젊게 만들지 않은 페이지 수입니다.

 

• PAGES_MADE_YOUNG_RATE

초당 최신 페이지로 변경되는 (마지막 페이지 배포 또는 활동이후 최신(young)으로 변경된 페이지 / 소요시간).

 

• PAGES_MADE_NOT_YOUNG_RATE

초당 최신 페이지로 변경되지 않은 (마지막 페이지 배포 또는 활동이후 최신(young)으로 변경되지 않은 페이지 / 소요시간).

 

• NUMBER_PAGES_READ

읽은 페이지 수입니다.

 

• NUMBER_PAGES_CREATED

생성 페이지 수입니다.

 

• NUMBER_PAGES_WRITTEN

기록 페이지 수입니다.

 

• PAGES_READ_RATE

초당 읽은 페이지 (마지막 페이지 배포 또는 활동이후 읽은 페이지 /소요시간).

 

• PAGES_CREATE_RATE

초당 생성 페이지 (마지막 페이지 배포 또는 활동이후 생성된 페이지수/소요시간).

 

• PAGES_WRITTEN_RATE

초당 기록 페이지 (마지막 페이지 배포 또는 활동이후 기록된 페이지수/소요시간).

 

• NUMBER_PAGES_GET

논리적 읽기 요청 수입니다.

 

• HIT_RATE

버퍼 적중률.

 

• YOUNG_MAKE_PER_THOUSAND_GETS

천개당 최신 페이지(young) 변경된 수를 얻습니다.

 

• NOT_YOUNG_MAKE_PER_THOUSAND_GETS

천개당 최신 페이지(young) 변경되지 않은 수를 얻습니다.

 

• NUMBER_PAGES_READ_AHEAD

미리 읽은 페이지 수입니다.

 

• NUMBER_READ_AHEAD_EVICTED

쿼리에서 액세스하지 않고 나중에 제거된 미리 읽기 백그라운드 스레드가 InnoDB 버퍼 풀로 읽은 페이지 입니다.

 

• READ_AHEAD_RATE

초당 미리 읽기 속도 (마지막 페이지 배포 또는 활동이후 미리 읽은 페이지 / 소요시간).

 

• READ_AHEAD_EVICTED_RATE

초당 액세스 없이 제거된 미리 읽기 페이지 (마지막 페이지 배포 또는 활동이후 액세스되지 않은 미리 읽기 페이지/소요시간)입니다.

 

• LRU_IO_TOTAL

LRU I/O.

 

• LRU_IO_CURRENT

현재 간격에 대한 LRU I/O.

 

• UNCOMPRESS_TOTAL

압축 해제된 페이지

 

• UNCOMPRESS_CURRENT

현재 간격에서 압축이 풀린 페이지 수입니다.

 

예제

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS\G
*************************** 1. row ***************************
                         POOL_ID: 0
                       POOL_SIZE: 8192
                    FREE_BUFFERS: 1
                  DATABASE_PAGES: 8085
              OLD_DATABASE_PAGES: 2964
         MODIFIED_DATABASE_PAGES: 0
              PENDING_DECOMPRESS: 0
                   PENDING_READS: 0
               PENDING_FLUSH_LRU: 0
              PENDING_FLUSH_LIST: 0
                PAGES_MADE_YOUNG: 22821
            PAGES_NOT_MADE_YOUNG: 3544303
           PAGES_MADE_YOUNG_RATE: 357.62602199870594
       PAGES_MADE_NOT_YOUNG_RATE: 0
               NUMBER_PAGES_READ: 2389
            NUMBER_PAGES_CREATED: 12385
            NUMBER_PAGES_WRITTEN: 13111
                 PAGES_READ_RATE: 0
               PAGES_CREATE_RATE: 0
              PAGES_WRITTEN_RATE: 0
                NUMBER_PAGES_GET: 33322210
                        HIT_RATE: 1000
    YOUNG_MAKE_PER_THOUSAND_GETS: 18
NOT_YOUNG_MAKE_PER_THOUSAND_GETS: 0
         NUMBER_PAGES_READ_AHEAD: 2024
       NUMBER_READ_AHEAD_EVICTED: 0
                 READ_AHEAD_RATE: 0
         READ_AHEAD_EVICTED_RATE: 0
                    LRU_IO_TOTAL: 0
                  LRU_IO_CURRENT: 0
                UNCOMPRESS_TOTAL: 0
              UNCOMPRESS_CURRENT: 0

 

참고사항

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

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

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

 

 

■ INNODB_CMP and INNODB_CMP_RESET Tables

INNODB_CMP INNODB_CMP_RESET 테이블은 압축 InnoDB 테이블과 관련된 작업에 대한 상태 정보를 제공합니다.

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

 

• PAGE_SIZE

압축된 페이지 크기 (바이트)입니다.

 

• COMPRESS_OPS

PAGE_SIZE 크기의 B-tree 페이지가 압축된 횟수입니다. 페이지가 생성되거나 압축되지 않은 수정 로그의 공간이 부족할 때마다 페이지가 압축됩니다.

 

• COMPRESS_OPS_OK

PAGE_SIZE 크기의 B-tree 페이지가 성공적으로 압축된 횟수입니다. 수는 COMPRESS_OPS 초과하지 않아야합니다.

 

• COMPRESS_TIME

PAGE_SIZE 크기의 B-tree 페이지를 압축하는데 사용된 시간()입니다.

 

• UNCOMPRESS_OPS

크기가 PAGE_SIZE B-tree 페이지가 압축 해제된 횟수입니다. B-tree 페이지는 압축이 실패할 때마다 또는 압축되지 않은 페이지가 버퍼풀에 없을때, 처음 액세스 압축이 해제됩니다.

 

• UNCOMPRESS_TIME

PAGE_SIZE 크기의 B-tree 페이지를 압축 해제하는 사용된 시간 ()입니다.

 

예제

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP\G
*************************** 1. row ***************************
      page_size: 1024
   compress_ops: 0
compress_ops_ok: 0
  compress_time: 0
 uncompress_ops: 0
uncompress_time: 0
*************************** 2. row ***************************
      page_size: 2048
   compress_ops: 0
compress_ops_ok: 0
  compress_time: 0
 uncompress_ops: 0
uncompress_time: 0
*************************** 3. row ***************************
      page_size: 4096
   compress_ops: 0
compress_ops_ok: 0
  compress_time: 0
 uncompress_ops: 0
uncompress_time: 0
*************************** 4. row ***************************
      page_size: 8192
   compress_ops: 86955
compress_ops_ok: 81182
  compress_time: 27
 uncompress_ops: 26828
uncompress_time: 5
*************************** 5. row ***************************
      page_size: 16384
   compress_ops: 0
compress_ops_ok: 0
  compress_time: 0
 uncompress_ops: 0
uncompress_time: 0

 

참고사항.

+ 테이블을 사용하여 데이터베이스에서 InnoDB 테이블 압축의 효과를 측정합니다.

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

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

 

 

 

■ INNODB_CMPMEM and INNODB_CMPMEM_RESET Tables

INNODB_CMPMEM INNODB_CMPMEM_RESET 테이블은 InnoDB 버퍼 내의 압축 페이지에 대한 상태 정보를 제공합니다.

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

 

• PAGE_SIZE

블록 크기 (바이트)입니다. 테이블의 레코드는 크기의 블록을 설명합니다.

 

• BUFFER_POOL_INSTANCE

버퍼 인스턴스의 고유 ID입니다.

 

• PAGES_USED

현재 사용중인 PAGE_SIZE 크기의 블록 수입니다.

 

• PAGES_FREE

현재 할당 가능한 크기가 PAGE_SIZE 블록 수입니다. 컬럼은 메모리 풀의 외부 단편화를 보여줍니다. 이상적으로 숫자는 최대 1이어야 합니다.

 

• RELOCATION_OPS

크기가 PAGE_SIZE 블록이 재배치된 횟수입니다. 버디 시스템(buddy system) 해제 블록을 형성하려고 해제 블록의 할당 "buddy neighbor" 재배치 있습니다. INNODB_CMPMEM_RESET 테이블에서 읽으면이 계수가 재설정됩니다.

 

• RELOCATION_TIME

크기가 PAGE_SIZE 블록을 재배치하는데 사용된 시간 (마이크로 )입니다. INNODB_CMPMEM_RESET 테이블에서 읽으면이 계수가 재설정됩니다.

 

예제

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_CMPMEM\G
*************************** 1. row ***************************
           page_size: 1024
buffer_pool_instance: 0
          pages_used: 0
          pages_free: 0
      relocation_ops: 0
     relocation_time: 0
*************************** 2. row ***************************
           page_size: 2048
buffer_pool_instance: 0
          pages_used: 0
          pages_free: 0
      relocation_ops: 0
     relocation_time: 0
*************************** 3. row ***************************
           page_size: 4096
buffer_pool_instance: 0
          pages_used: 0
          pages_free: 0
      relocation_ops: 0
     relocation_time: 0
*************************** 4. row ***************************
           page_size: 8192
buffer_pool_instance: 0
          pages_used: 7673
          pages_free: 15
      relocation_ops: 4638
     relocation_time: 0
*************************** 5. row ***************************
           page_size: 16384
buffer_pool_instance: 0
          pages_used: 0
          pages_free: 0
      relocation_ops: 0
     relocation_time: 0

 

참고사항.

+ 테이블을 사용하여 데이터베이스에서 InnoDB 테이블 압축의 효율성을 측정합니다.

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

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

 

 

 

■ INNODB_CMP_PER_INDEX and INNODB_CMP_PER_INDEX_RESET Tables

INNODB_CMP_PER_INDEX INNODB_CMP_PER_INDEX_RESET 테이블은 압축 InnoDB 테이블 인덱스와 관련된 작업에 대한 상태 정보를 데이터베이스, 테이블 인덱스의 조합에 대한 별도의 통계와 함께 제공하여 특정 테이블에 대한 압축의 성능과 유용성을 평가하는 도움을줍니다.

압축 InnoDB 테이블의 경우 테이블 데이터와 모든 보조 인덱스가 모두 압축됩니다. 컨텍스트에서 테이블 데이터는 모든 컬럼을 포함하는 다른 인덱스 클러스터형 인덱스로 처리됩니다.

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

 

• DATABASE_NAME

해당 테이블을 포함하는 스키마 (데이터베이스)입니다.

 

• TABLE_NAME

압축 통계를 모니터링 테이블입니다.

 

• INDEX_NAME

압축 통계를 모니터링 인덱스입니다.

 

• COMPRESS_OPS

시도한 압축 작업 입니다. 페이지가 작성되거나 압축되지 않은 수정 로그 공간이 부족할 때마다 페이지가 압축됩니다.

 

• COMPRESS_OPS_OK

성공적인 압축 작업 입니다. 압축 실패 횟수를 얻으려면 COMPRESS_OPS 값에서 뺍니다. 압축 실패 백분율을 얻으려면 COMPRESS_OPS 값으로 나눕니다.

 

• COMPRESS_TIME

인덱스에서 데이터를 압축하는데 사용된 시간()입니다.

 

• UNCOMPRESS_OPS

수행된 압축 해제 작업 입니다. 압축된 InnoDB 페이지는 압축이 실패할 때마다 또는 압축된 페이지가 버퍼풀에서 처음 액세스되고 압축되지 않은 페이지가 존재하지 않을 때마다 압축 해제됩니다.

 

• UNCOMPRESS_TIME

인덱스에서 데이터를 압축 해제하는데 사용된 시간 ()입니다.

 

예제

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX\G
*************************** 1. row ***************************
  database_name: employees
     table_name: salaries
     index_name: PRIMARY
   compress_ops: 0
compress_ops_ok: 0
  compress_time: 0
 uncompress_ops: 23451
uncompress_time: 4
*************************** 2. row ***************************
  database_name: employees
     table_name: salaries
     index_name: emp_no
   compress_ops: 0
compress_ops_ok: 0
  compress_time: 0
 uncompress_ops: 1597
uncompress_time: 0

 

참고사항.

+ 테이블을 사용하여 특정 테이블, 인덱스 또는 다에 대한 InnoDB 테이블 압축의 효율성을 측정합니다.

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

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

+ 모든 인덱스에 대해 별도의 측정을 수집하면 상당한 성능 오버 헤드가 발생하므로 INNODB_CMP_PER_INDEX INNODB_CMP_PER_INDEX_RESET 통계는 기본적으로 수집되지 않습니다. 모니터링하려는 압축 테이블에서 작업을 수행하기 전에 innodb_cmp_per_index_enabled 시스템 변수를 활성화해야 합니다.

 

 

■ INNODB_LOCKS Table

INNODB_LOCKS 테이블은 InnoDB 트랜잭션이 요청했지만 아직 획득하지 않은 잠금 다른 트랜잭션을 차단하는 트랜잭션이 보유하는 잠금에 대한 정보를 제공합니다.

 

- 참고사항

테이블은 MySQL 5.7.14에서 이상 사용되지 않으며 MySQL 8.0에서 제거되었습니다.

 

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

 

• LOCK_ID

InnoDB 내부의 고유 잠금 ID 번호. 불투명한 문자열로 취급합니다. LOCK_ID 현재 TRX_ID 포함되어 있지만 LOCK_ID 데이터 형식은 언제든지 변경될 있습니다. LOCK_ID 값을 구문 분석하는 애플리케이션을 작성하면 않됩니다.

 

• LOCK_TRX_ID

잠금을 보유한 트랜잭션의 ID입니다. 트랜잭션에 대한 세부 정보를 얻으려면이 컬럼을 INNODB_TRX 테이블의 TRX_ID 열과 조인합니다.

 

• LOCK_MODE

잠금 요청 방법. 허용되는 잠금 모드 설명자는 S, X, IS, IX, GAP, AUTO_INC UNKNOWN입니다. 잠금 모드 설명자를 조합하여 특정 잠금 모드를 식별할 있습니다.

 

• LOCK_TYPE

잠금 유형입니다. 허용되는 값은 레벨 잠금의 경우 RECORD, 테이블 레벨 잠금의 경우 TABLE입니다.

 

• LOCK_TABLE

잠겼거나 잠긴 레코드를 포함하는 테이블의 이름입니다.

 

• LOCK_INDEX

LOCK_TYPE RECORD 경우 인덱스의 이름입니다. 그렇지 않으면 NULL입니다.

 

• LOCK_SPACE

LOCK_TYPE RECORD 경우 잠긴 레코드의 테이블 스페이스 ID입니다. 그렇지 않으면 NULL입니다.

 

• LOCK_PAGE

LOCK_TYPE RECORD 경우 잠긴 레코드의 페이지 번호입니다. 그렇지 않으면 NULL입니다.

 

• LOCK_REC

LOCK_TYPE RECORD 경우 페이지 잠긴 레코드의 번호입니다. 그렇지 않으면 NULL입니다.

 

• LOCK_DATA

잠금과 연관된 데이터(있는 경우). LOCK_TYPE RECORD이면 값이 표시되고 그렇지 않으면 값이 NULL입니다. 잠긴 레코드의 기본 값은 기본 인덱스에 배치 잠금에 대해 표시됩니다.

잠긴 레코드의 보조 인덱스 값은 고유 보조 인덱스에 배치 잠금에 대해 표시됩니다. 보조 인덱스가 고유하지 않은 경우 보조 인덱스 값이 추가 기본 값과 함께 표시됩니다.

기본 키가없는 경우 LOCK_DATA InnoDB 클러스터형 인덱스 사용을 관리하는 규칙에 따라 선택한 고유 인덱스의 또는 고유 InnoDB 내부 ID번호를 표시합니다.

LOCK_DATA 최고 의사 레코드(supremum pseudo-record)에서 수행된 잠금에 대해 "최고 의사 레코드(supremum pseudo-record)" 보고합니다.

잠긴 레코드가 포함된 페이지가 잠금이 유지되는 동안 디스크에 기록되어 버퍼풀에 없으면 InnoDB 디스크에서 페이지를 가져오지 않습니다. 대신 LOCK_DATA NULL 보고합니다.

 

참고사항 1

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS\G
*************************** 1. row ***************************
    lock_id: 3723:72:3:2
lock_trx_id: 3723
  lock_mode: X
  lock_type: RECORD
 lock_table: `mysql`.`t`
 lock_index: PRIMARY
 lock_space: 72
  lock_page: 3
   lock_rec: 2
  lock_data: 1, 9
*************************** 2. row ***************************
    lock_id: 3722:72:3:2
lock_trx_id: 3722
  lock_mode: S
  lock_type: RECORD
 lock_table: `mysql`.`t`
 lock_index: PRIMARY
 lock_space: 72
  lock_page: 3
   lock_rec: 2
  lock_data: 1, 9

 

참고사항 2

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

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

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

 

 

■ INNODB_LOCK_WAITS Table

INNODB_LOCK_WAITS 테이블에는 차단 InnoDB 트랜잭션에 대해 하나 이상의 행이 포함되어 요청한 잠금과 해당 요청을 차단하는 잠금을 나타냅니다.

 

- 참고사항

테이블은 MySQL 5.7.14에서 이상 사용되지 않으며 MySQL 8.0에서 제거되었습니다.

 

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

 

• REQUESTING_TRX_ID

요청(차단된) 트랜잭션의 ID입니다.

 

• REQUESTED_LOCK_ID

트랜잭션이 대기중인 잠금의 ID입니다. 잠금에 대한 세부 사항을 얻으려면이 열을 INNODB_LOCKS 테이블의 LOCK_ID컬럼과 결합합니다.

 

• BLOCKING_TRX_ID

차단 트랜잭션의 ID입니다.

 

• BLOCKING_LOCK_ID

다른 트랜잭션의 진행을 차단하는 트랜잭션이 보유한 잠금의 ID입니다. 잠금에 대한 세부 사항을 얻으려면이 열을 INNODB_LOCKS 테이블의 LOCK_ID 컬럼과 결합합니다.

 

예제

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS\G
*************************** 1. row ***************************
requesting_trx_id: 3396
requested_lock_id: 3396:91:3:2
  blocking_trx_id: 3395
 blocking_lock_id: 3395:91:3:2

 

참고사항.

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

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

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

댓글(0)

Designed by JB FACTORY