• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 1. InnoDB 소개
    2. InnoDB의 개념과 아키텍처
    3. InnoDB 구성
    4. InnoDB 관리
    5. InnoDB 테이블 스페이스 관리
    6. InnoDB 테이블 관리
    7. InnoDB 압축 테이블
    8. InnoDB 파일 형식 관리
    9. InnoDB Row Storage and Row Formats
    10. InnoDB 디스크 I/O 및 파일 영역 관리
    11. InnoDB와 온라인 DDL
    12. InnoDB 부팅 옵션 및 시스템 변수
    13. InnoDB의 성능
    1. InnoDB 버퍼 풀 구성
    2. InnoDB 상호 배타적 잠금 및 읽기 / 쓰기 잠금 구현
    3. InnoDB를위한 메모리 할당 구성
    4. InnoDB 변경 버퍼링 구성
    5. InnoDB의 스레드 병렬성 구성
    6. InnoDB 백그라운드 I/O 스레드 수 구성
    7. 그룹 커밋
    8. InnoDB 마스터 스레드의 I/O 속도의 구성
    9. InnoDB 스핀 루프에서 PAUSE 명령 사용
    10. 스핀 록 폴링 구성
    11. InnoDB의 MySQL 성능 스키마와 통합
    12. 다중 롤백 세그먼트에 의한 확장성 향상
    13. InnoDB 퍼지 스케줄링 구성
    14. InnoDB의 읽기 전용 트랜잭션 최적화
    15. 체크섬의 고속화를위한 CRC32 체크섬 알고리즘의 사용
    16. 옵티 마이저 통계
    17. InnoDB 테이블에 ANALYZE TABLE의 복잡성 추정
    14. InnoDB INFORMATION_SCHEMA 테이블
    15. InnoDB 모니터
    16. InnoDB 백업 및 복구
    17. InnoDB와 MySQL 복제
    18. InnoDB 및 memcached의 통합
    19. InnoDB 문제 해결
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

14.13.4 InnoDB 변경 버퍼링 구성

테이블에 대해 INSERT , UPDATE 및 DELETE 작업이 수행되면 인덱스 컬럼의 값 (특히 부 키 값)은 종종 정렬 된 순서대로되지 않기 때문에 보조 인덱스를 최신 상태로 위해 대량의 I / O가 필요합니다. InnoDB 는 삽입 버퍼 를 제공합니다. 이것은 관련된 페이지 가 버퍼 풀 에없는 경우에 보조 인덱스 항목에 대한 변경을 캐시하여 해당 페이지를 디스크에서 읽어 않음으로써 I / O 조작을 방지하는 것입니다. 버퍼링 된 변경은 해당 페이지가 버퍼 풀에로드 된 경우 병합 된 업데이트 된 페이지는 나중에 일반 메커니즘을 사용하여 디스크에 플래시됩니다. InnoDB 의 메인 스레드는 그 버퍼링 된 변경을 서버가 거의 유휴 상태에있을 때와 저속 종료 중에 병합합니다.

이렇게하면 디스크 읽기 및 쓰기가 줄어들 수 있기 때문에이 기능은 I / O에 의존하는 작업 (예를 들어, 대량 삽입 등의 대량의 DML 작업을 포함하는 응용 프로그램)에서 매우 가치가 있습니다.

그러나 삽입 버퍼는 버퍼 풀의 일부를 차지하기 위해 데이터 페이지를 캐시하는 데 사용할 수있는 메모리가 줄어 듭니다. 작업 집합이 버퍼 풀에 거의 들어가거나 테이블의 보조 인덱스가 적은 경우는 삽입 버퍼링을 비활성화하면 도움이 될 수 있습니다. 작업 집합이 버퍼 풀에 끼울 경우는 삽입 버퍼링은 버퍼 풀에없는 페이지에만 적용되지 않으므로 추가로 부과하는 오버 헤드는 없습니다.

InnoDB 가 어느 정도 삽입 버퍼링을 수행하거나 시스템 구성 매개 변수 innodb_change_buffering 를 사용하여 제어 할 수 있습니다. 삽입 작업 삭제 작업 (인덱스 레코드가 처음에 삭제 표시 될 때) 및 제거 작업 (인덱스 레코드가 물리적으로 제거 될 때)에서 버퍼링을 활성화하거나 비활성화 할 수 있습니다. 업데이트 작업은 삽입과 삭제의 조합으로 표시됩니다. MySQL 5.5 이상에서는 기본값이 inserts 에서 all 로 변경되었습니다.

innodb_change_buffering 의 허용되는 값은 다음과 같습니다.

  • all

    기본값 : 버퍼의 삽입, 삭제 마킹 작업 및 퍼지.

  • none

    어떤 조작도 버퍼링하지 않습니다.

  • inserts

    삽입 작업을 버퍼링합니다.

  • deletes

    삭제 마킹 작업을 버퍼링합니다.

  • changes

    삽입과 삭제 표식을 모두 버퍼링합니다.

  • purges

    백그라운드에서 실행되는 영구 삭제 작업을 버퍼링합니다.

이 매개 변수의 값은 MySQL 옵션 파일 ( my.cnf 또는 my.ini )로 설정하거나 SET GLOBAL 명령 (여기에는 SUPER 권한이 있어야합니다)에서 동적으로 변경할 수 있습니다. 이 설정을 변경하면 새로운 작업 버퍼링에 영향을 미칩니다. 이미 버퍼링 된 항목의 병합은 영향을받지 않습니다.

INSERT , UPDATE 및 DELETE 문 고속화 대한 자세한 내용은 섹션 8.2.2 "DML 문 최적화" 를 참조하십시오.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved