Loading...
MySQL 9.5 Reference Manual 9.5의 A.16 MySQL 9.5 FAQ: InnoDB Change Buffer의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
A.16.1. 어떤 종류의 operation이 secondary index를 변경하여 change buffering을 발생시킙니까?
A.16.2. InnoDB change buffer의 이점은 무엇입니까?
A.16.3. change buffer는 다른 유형의 index도 지원합니까?
A.16.4. InnoDB는 change buffer에 얼마나 많은 공간을 사용합니까?
A.16.5. change buffer의 현재 크기는 어떻게 확인합니까?
A.16.6. change buffer merging은 언제 발생합니까?
A.16.7. change buffer는 언제 flush됩니까?
A.16.8. change buffer는 언제 사용해야 합니까?
A.16.9. change buffer는 언제 사용하지 말아야 합니까?
A.16.10. change buffer에 대한 추가 정보는 어디에서 찾을 수 있습니까?
| A.16.1. | 어떤 종류의 작업이 secondary index를 변경하여<br>change buffering을 발생시킵니까? |
INSERT, UPDATE, 그리고<br>DELETE 작업은 secondary<br>index를 변경할 수 있습니다. 영향받는 index page가 buffer pool에<br>없다면, 변경 사항은 change buffer에 버퍼될 수 있습니다. | |
| A.16.2. | InnoDB change<br>buffer의 이점은 무엇입니까? |
| secondary index page가 buffer pool에 없을 때 secondary index 변경을<br>버퍼하면, 영향을 받는 index page를 디스크에서 즉시 읽어오기 위해<br>필요한 비용이 큰 랜덤 액세스 I/O<br>작업을 피할 수 있습니다. 버퍼된 변경 사항은 나중에,<br>다른 읽기 작업에 의해 page가 buffer pool로 읽혀 들어올 때<br>배치 형태로 적용될 수 있습니다. | |
| A.16.3. | change buffer는 다른 유형의 index도 지원합니까? |
| 아니요. change buffer는 secondary index만 지원합니다. 클러스터형<br>index, 전문 검색 index, 공간 index는 지원되지 않습니다.<br>전문 검색 index는 자체적인 캐시 메커니즘을 가지고 있습니다. | |
| A.16.4. | InnoDB는 change<br>buffer에 얼마나 많은 공간을 사용합니까? |
MySQL 5.6에서<br>innodb_change_buffer_max_size<br>구성 옵션이 도입되기 전에는, system tablespace에 있는<br>디스크 기반 change buffer의 최대 크기는<br>InnoDB buffer pool 크기의 1/3이었습니다.<br> <br>MySQL 5.6 이후 버전에서는,<br>innodb_change_buffer_max_size<br>구성 옵션이 change buffer의 최대 크기를 전체 buffer<br>pool 크기의 퍼센트로 정의합니다. 기본값은<br>innodb_change_buffer_max_size<br>가 25로 설정되어 있습니다. 최대 설정값은 50입니다.<br> <br>InnoDB는 디스크 상 change buffer가 정의된<br>제한을 초과하게 되는 작업은 버퍼하지 않습니다.<br> <br>Change buffer page는 buffer pool에 영구적으로 존재할 필요가<br>없으며 LRU 작업에 의해 제거될 수 있습니다. | |
| A.16.5. | change buffer의 현재 크기는 어떻게 확인합니까? |
change buffer의 현재 크기는<br>SHOW ENGINE INNODB STATUS \G의<br>INSERT BUFFER AND ADAPTIVE HASH INDEX<br>heading 아래에 보고됩니다. 예를 들면 다음과 같습니다:<br> <br>none<br>-------------------------------------<br>INSERT BUFFER AND ADAPTIVE HASH INDEX<br>-------------------------------------<br>Ibuf: size 1, free list len 0, seg size 2, 0 merges<br><br>관련 데이터 포인트는 다음과 같습니다:<br>- size: change buffer 내에서 사용된 page<br>수입니다. change buffer 크기는 seg<br> size - (1 + free list len)과 같습니다. 1<br> + 값은 change buffer header page를 나타냅니다.<br> <br> <br>- seg size: page 단위의 change buffer<br>크기입니다.<br> <br>change buffer 상태를 모니터링하는 방법에 대한 정보는<br>Section 17.5.2, “Change Buffer”를 참조하십시오. | |
| A.16.6. | change buffer merging은 언제 발생합니까? |
- page가 buffer pool로 읽혀 들어올 때, 버퍼된 변경 사항은<br>읽기가 완료된 후, 해당 page가 사용 가능해지기 전에<br>병합됩니다.<br> <br> <br>- Change buffer merging은 백그라운드 태스크로 수행됩니다.<br>innodb_io_capacity<br>파라미터는 change buffer에서 데이터를 병합하는 것과 같은<br>InnoDB 백그라운드 태스크가 수행하는 I/O<br>활동의 상한을 설정합니다.<br> <br> <br>- 장애 복구 동안 change buffer 병합이 수행됩니다.<br>Index page가 buffer pool로 읽혀 들어올 때, change buffer(system<br>tablespace에 있음)에서 secondary index의 leaf page로<br>변경 사항이 적용됩니다.<br> <br> <br>- Change buffer는 완전히 영속적이며 시스템 장애를 견딜 수<br>있습니다. 재시작 시, change buffer 병합 작업은 정상적인<br>작업의 일부로서 다시 시작됩니다.<br> <br> <br>- 느린 서버 종료의 일부로 전체 change buffer 병합을<br>강제로 수행할 수 있으며, 이때<br>--innodb-fast-shutdown=0을 사용합니다. | |
| A.16.7. | change buffer는 언제 flush됩니까? |
| 갱신된 page는 buffer pool을 차지하는 다른 page를 flush하는 것과<br>동일한 flush 메커니즘에 의해 flush됩니다. | |
| A.16.8. | change buffer는 언제 사용해야 합니까? |
Change buffer는 index가 점점 커져서 더 이상<br>InnoDB buffer pool에 맞지 않을 때<br>secondary index에 대한 랜덤 I/O를 줄이기 위해 설계된<br>기능입니다. 일반적으로, 전체 데이터 세트가 buffer pool에<br>들어가지 않을 때, secondary index page를 변경하는 상당한 DML<br>작업이 있을 때, 또는 DML 작업에 의해 정기적으로<br>변경되는 secondary index가 많이 있을 때 change buffer를<br>사용해야 합니다. | |
| A.16.9. | change buffer는 언제 사용하지 말아야 합니까? |
전체 데이터 세트가 InnoDB buffer<br>pool 안에 들어가는 경우, secondary index가 상대적으로 적은<br>경우, 또는 랜덤 읽기 속도가 순차 읽기만큼 빠른<br>솔리드 스테이트 스토리지를 사용하는 경우에는 change buffer를<br>비활성화하는 것을 고려할 수 있습니다. 구성 변경을 하기<br>전에, 대표적인 워크로드를 사용하여 테스트를 실행해 보고 change<br>buffer를 비활성화하는 것이 어떤 이점을 제공하는지<br>확인하는 것이 권장됩니다. | |
| A.16.10. | change buffer에 대한 추가 정보는 어디에서 찾을 수 있습니까? |
| Section 17.5.2, “Change Buffer”를 참조하십시오. |
A.15 MySQL 9.5 FAQ: MySQL Enterprise Thread Pool
A.17 MySQL 9.5 FAQ: InnoDB Data-at-Rest Encryption