• 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의 개념과 아키텍처
    1. MySQL 과 ACID 모델
    2. InnoDB 트랜잭션 모델 및 잠금
    3. InnoDB 잠금 모드
    4. 일관성 nonlock 읽기
    5. 잠금 읽기 (SELECT ... FOR UPDATE 및 SELECT ... LOCK IN SHARE MODE)
    6. InnoDB 레코드 격차 및 넥스트 키 잠금
    7. 넥스트키 로크에 의한 팬텀 문제 해결
    8. InnoDB의 다양한 SQL문에서 설정된 잠금
    9. 암시적 트랜잭션 커밋과 롤백
    10. 교착 상태 감지 및 롤백
    11. 교착 상태 해결 방법
    12. InnoDB 멀티 버전
    13. InnoDB 테이블 및 인덱스 구조
    1. InnoDB 테이블의 .frm 파일의 역할
    2. 클러스터 인덱스와 보조 인덱스
    3. FULLTEXT 인덱스
    4. InnoDB 인덱스의 물리적 구조
    5. 삽입 버퍼
    6. 적응 형 해시 인덱스
    7. 물리적 행 구조
    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의 성능
    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.2.13.6 적응 형 해시 인덱스

적응 형 해시 인덱스 (AHI)라는 기능을 사용하면 트랜잭션 기능과 신뢰성을 희생하지 않고 버퍼 풀 의 워크로드와 충분한 메모리가 제대로 결합 된 시스템에서 인 메모리 데이터베이스와 마찬가지로 InnoDB 를 실행할 수 있습니다. 이 기능은 서버를 시작할 때, innodb_adaptive_hash_index 옵션을 사용하면 활성화되고 --skip-innodb_adaptive_hash_index 을 사용하면 비활성화됩니다.

감시 대상의 검색 패턴에 따라 MySQL은 인덱스 키의 프리픽스를 사용하여 해시 인덱스를 구축합니다. 키 프리픽스는 임의의 길이로 할 수 있지만, 해시 인덱스는 B 트리의 값의 일부만 표시되지 않을 수 있습니다. 해시 인덱스는 자주 액세스되는 인덱스 페이지에 대한 요청에 따라 구축됩니다.

테이블이 메인 메모리에 거의 전적으로 수용되는 경우는 어떤 요소의 직접 검색을 사용하여 인덱스 값을 포인터의 일종으로 변환하면 해시 인덱스를 사용하여 쿼리를 빠르게 할 수 합니다. InnoDB 는 인덱스 검색을 모니터링하는 메커니즘을 제공합니다. 해시 인덱스의 구축이 쿼리에 유익하다고 InnoDB 가 판단한 경우 자동으로 인덱스가 구축됩니다.

일부 워크로드 는 해시 인덱스의 검색에 의한 고속화가, 인덱스 검색을 모니터하거나 해시 인덱스의 구조를 보존하는 추가 작업보다 중요합니다. 여러 병렬 결합 등의 부하가 높은 워크로드는 적응 형 해시 인덱스에 대한 액세스를 보호하는 읽기 / 쓰기 잠금이 충돌의 원인이 될 수 있습니다. LIKE 연산자와 % 와일드 카드를 사용한 쿼리도 AHI를 사용하는 이점을 얻을 수없는 경향이 있습니다. 적응 형 해시 인덱스가 필요없는 워크로드에서이를 해제하면 불필요한 성능 오버 헤드가 감소됩니다. 이 기능은 특정 시스템에 적합한 지 여부를 사전에 예측하기 어렵 기 때문에 현실적인 워크로드를 사용하여 활성화 한 경우와 비활성화 한 경우 모두에서 벤치 마크를 수행 할 를 검토하십시오. MySQL 5.6 이상에서는 아키텍처가 변경되어 이전 버전보다 적응 형 해시 인덱스를 비활성화 할에 적합한 워크로드가 많아졌습니다. 그러나 기본적으로는 계속 활성화되어 있습니다.

항상 해시 인덱스는 테이블의 기존 B 트리 인덱스를 기반으로 구축됩니다. InnoDB 는 B 트리 인덱스에 대해 InnoDB 가 발견 한 검색 패턴에 따라 임의의 길이의 B 트리에 정의 된 키의 프리픽스 해시 인덱스를 만들 수 있습니다. 해시 인덱스는 자주 액세스되는 인덱스 페이지에만 적용되도록 부분적으로 구축 할 수 있습니다.

적응 형 해시 인덱스의 사용 및이를 SHOW ENGINE INNODB STATUS 명령의 출력 SEMAPHORES 섹션에서 사용할 경우 충돌을 모니터 할 수 있습니다. btr0sea.c 에서 작성된 RW 래치에서 대기중인 스레드가 많은 보이는 경우는 적응 형 해시 인덱스를 비활성화하면 도움이 될 수 있습니다.

해시 인덱스의 성능 특성에 대한 자세한 내용은 섹션 8.3.8 "B 트리 인덱스와 해시 인덱스의 비교" 를 참조하십시오.

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