Loading...
MySQL 9.5 Reference Manual 9.5의 28.4.3 The INFORMATION_SCHEMA INNODB_BUFFER_PAGE_LRU Table의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
INNODB_BUFFER_PAGE_LRU 테이블은 InnoDB buffer pool 안의 페이지에 대한 정보를 제공하며, 특히 buffer pool이 가득 찼을 때 어떤 페이지를 buffer pool에서 evict 할지를 결정하는 LRU 리스트에서의 정렬 방식에 대한 정보를 제공합니다.
INNODB_BUFFER_PAGE_LRU 테이블은 몇 가지 예외를 제외하고 INNODB_BUFFER_PAGE 테이블과 동일한 컬럼을 가집니다. BLOCK_ID 및 PAGE_STATE 컬럼 대신 LRU_POSITION 및 COMPRESSED 컬럼을 가지며, IS_STALE 컬럼은 포함하지 않습니다.
관련 사용 정보와 예시는 Section 17.15.5, “InnoDB INFORMATION_SCHEMA Buffer Pool Tables”를 참조하십시오.
주의
INNODB_BUFFER_PAGE_LRU 테이블을 조회하면 성능에 영향을 줄 수 있습니다. 성능 영향에 대해 인지하고 이를 허용할 수 있다고 판단한 경우가 아니라면, 프로덕션 시스템에서 이 테이블을 조회하지 마십시오.
프로덕션 시스템의 성능에 영향을 주지 않으려면, 분석하려는 문제를 테스트 인스턴스에서 재현하고, 그곳에서 buffer pool 통계를 조회하십시오.
INNODB_BUFFER_PAGE_LRU 테이블에는 다음과 같은 컬럼이 있습니다:
POOL_ID
buffer pool ID입니다. 여러 buffer pool 인스턴스를 구분하기 위한 식별자입니다.
LRU_POSITION
LRU 리스트 내에서의 페이지 위치입니다.
SPACE
테이블스페이스 ID입니다. INNODB_TABLES.SPACE와 동일한 값입니다.
PAGE_NUMBER
페이지 번호입니다.
PAGE_TYPE
페이지 타입입니다. 허용되는 값은 다음 표에 나와 있습니다.
Table 28.6 INNODB_BUFFER_PAGE_LRU.PAGE_TYPE Values
| Page Type | Description |
|---|---|
ALLOCATED | 새로 할당된 페이지 |
BLOB | 압축되지 않은 BLOB 페이지 |
COMPRESSED_BLOB2 | 후속 comp BLOB 페이지 |
COMPRESSED_BLOB | 첫 번째 compressed BLOB 페이지 |
ENCRYPTED_RTREE | 암호화된 R-tree |
EXTENT_DESCRIPTOR | extent descriptor 페이지 |
FILE_SPACE_HEADER | file space 헤더 |
FIL_PAGE_TYPE_UNUSED | 사용되지 않음 |
IBUF_BITMAP | insert buffer 비트맵 |
IBUF_FREE_LIST | insert buffer free 리스트 |
IBUF_INDEX | insert buffer 인덱스 |
INDEX | B-tree 노드 |
INODE | 인덱스 노드 |
LOB_DATA | 압축되지 않은 LOB 데이터 |
LOB_FIRST | 압축되지 않은 LOB의 첫 번째 페이지 |
LOB_INDEX | 압축되지 않은 LOB 인덱스 |
PAGE_IO_COMPRESSED | compressed 페이지 |
PAGE_IO_COMPRESSED_ENCRYPTED | 압축 및 암호화된 페이지 |
PAGE_IO_ENCRYPTED | 암호화된 페이지 |
RSEG_ARRAY | 롤백 세그먼트 배열 |
RTREE_INDEX | R-tree 인덱스 |
SDI_BLOB | 압축되지 않은 SDI BLOB |
SDI_COMPRESSED_BLOB | compressed SDI BLOB |
SDI_INDEX | SDI 인덱스 |
SYSTEM | 시스템 페이지 |
TRX_SYSTEM | 트랜잭션 시스템 데이터 |
UNDO_LOG | undo 로그 페이지 |
UNKNOWN | 알 수 없음 |
ZLOB_DATA | compressed LOB 데이터 |
ZLOB_FIRST | compressed LOB의 첫 번째 페이지 |
ZLOB_FRAG | compressed LOB 프래그먼트 |
ZLOB_FRAG_ENTRY | compressed LOB 프래그먼트 인덱스 |
ZLOB_INDEX | compressed LOB 인덱스 |
| Page Type | Description |
|---|
FLUSH_TYPE
flush 타입입니다.
FIX_COUNT
buffer pool 내에서 이 블록을 사용 중인 스레드 수입니다. 0이면 블록은 evict 가능 상태입니다.
IS_HASHED
이 페이지에 대해 해시 인덱스가 구축되었는지 여부입니다.
NEWEST_MODIFICATION
가장 최근 수정의 로그 시퀀스 번호입니다.
OLDEST_MODIFICATION
가장 오래된 수정의 로그 시퀀스 번호입니다.
ACCESS_TIME
페이지의 최초 액세스 시점을 판단하는 데 사용되는 추상적인 숫자입니다.
TABLE_NAME
페이지가 속한 테이블 이름입니다. 이 컬럼은 PAGE_TYPE 값이 INDEX인 페이지에만 적용됩니다. 서버가 아직 해당 테이블에 액세스하지 않았다면 이 컬럼은 NULL입니다.
INDEX_NAME
페이지가 속한 인덱스 이름입니다. 클러스터드 인덱스 또는 보조 인덱스 이름일 수 있습니다. 이 컬럼은 PAGE_TYPE 값이 INDEX인 페이지에만 적용됩니다.
NUMBER_RECORDS
페이지 내의 레코드 수입니다.
DATA_SIZE
레코드 크기의 합입니다. 이 컬럼은 PAGE_TYPE 값이 INDEX인 페이지에만 적용됩니다.
COMPRESSED_SIZE
compressed 페이지 크기입니다. 압축되지 않은 페이지에는 NULL입니다.
COMPRESSED
페이지가 compressed인지 여부입니다.
IO_FIX
이 페이지에 대해 보류 중인 I/O가 있는지 여부입니다: IO_NONE = 보류 중인 I/O 없음, IO_READ = read 보류 중, IO_WRITE = write 보류 중.
IS_OLD
블록이 LRU 리스트 내 old 블록 서브리스트에 속하는지 여부입니다.
FREE_PAGE_CLOCK
블록이 마지막으로 LRU 리스트의 head에 배치되었을 때의 freed_page_clock 카운터 값입니다. freed_page_clock 카운터는 LRU 리스트 끝에서 제거된 블록 수를 추적합니다.
1mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU LIMIT 1\G 2*************************** 1. row *************************** 3 POOL_ID: 0 4 LRU_POSITION: 0 5 SPACE: 97 6 PAGE_NUMBER: 1984 7 PAGE_TYPE: INDEX 8 FLUSH_TYPE: 1 9 FIX_COUNT: 0 10 IS_HASHED: YES 11NEWEST_MODIFICATION: 719490396 12OLDEST_MODIFICATION: 0 13 ACCESS_TIME: 3378383796 14 TABLE_NAME: `employees`.`salaries` 15 INDEX_NAME: PRIMARY 16 NUMBER_RECORDS: 468 17 DATA_SIZE: 14976 18 COMPRESSED_SIZE: 0 19 COMPRESSED: NO 20 IO_FIX: IO_NONE 21 IS_OLD: YES 22 FREE_PAGE_CLOCK: 0
이 테이블은 주로 전문가 수준의 성능 모니터링, 또는 MySQL에 성능 관련 확장을 개발할 때 유용합니다.
이 테이블을 조회하려면 PROCESS 권한이 필요합니다.
이 테이블의 컬럼에 대한 데이터 타입 및 기본값을 포함한 추가 정보를 확인하려면 INFORMATION_SCHEMA COLUMNS 테이블이나 SHOW COLUMNS 문을 사용하십시오.
이 테이블을 조회하면, buffer pool 내 active 페이지 수에 64바이트를 곱한 것보다 큰, 큰 블록의 연속 메모리를 MySQL이 할당해야 할 수 있습니다. 이 할당은 특히 멀티 기가바이트 buffer pool을 사용하는 시스템에서 메모리 부족 오류를 유발할 가능성이 있습니다.
이 테이블을 조회하면, MySQL이 LRU 리스트를 순회하는 동안 buffer pool을 나타내는 데이터 구조를 lock해야 하므로, 특히 멀티 기가바이트 buffer pool을 사용하는 시스템에서 동시성이 감소할 수 있습니다.
테이블, 테이블 행, 파티션 또는 인덱스가 삭제되면, 관련된 페이지는 다른 데이터에 공간이 필요해질 때까지 buffer pool에 남아 있습니다. INNODB_BUFFER_PAGE_LRU 테이블은 이러한 페이지가 buffer pool에서 evict될 때까지 해당 페이지에 대한 정보를 보고합니다. InnoDB가 buffer pool 데이터를 관리하는 방법에 대한 자세한 내용은 Section 17.5.1, “Buffer Pool”을 참조하십시오.
28.4.2 The INFORMATION_SCHEMA INNODB_BUFFER_PAGE Table
28.4.4 The INFORMATION_SCHEMA INNODB_BUFFER_POOL_STATS Table