• 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.2 클러스터 인덱스와 보조 인덱스

모든 InnoDB 테이블은 행의 데이터가 저장되어있는 클러스터 된 인덱스 라는 특별한 인덱스를 가지고 있습니다. 일반적으로 클러스터 된 인덱스는 기본 키 의 동의어입니다. 쿼리 삽입 및 기타 데이터베이스 작업에서 최적의 성능을 실현하려면 InnoDB가 클러스터 된 인덱스를 사용하여 테이블마다 가장 일반적인 검색 및 DML 작업을 최적화하는 방법을 이해하는 해야합니다.

  • 테이블에서 PRIMARY KEY 를 정의하면 InnoDB 는 그것이 클러스터 된 인덱스로 사용됩니다. 작성하는 테이블마다 기본 키를 정의합니다. 논리적으로 고유 Null이 아닌 컬럼 또는 컬럼 세트가 존재하지 않는 경우 자동으로 값이 입력되는 새로운 자동 증가 컬럼을 추가합니다.

  • 테이블에 PRIMARY KEY 가 정의되어 있지 않은 경우, MySQL은 모든 키 컬럼이 NOT NULL 의 UNIQUE 인덱스를 먼저 검색하고 InnoDB 는 그것을 클러스터링 된 인덱스로 사용합니다.

  • 테이블에 PRIMARY KEY 도 적절한 UNIQUE 인덱스도없는 경우에는 InnoDB 내부에서 행 ID 값을 포함한 합성 컬럼에 숨겨진 클러스터 된 인덱스가 생성됩니다. 그런 테이블은 InnoDB 가 행에 할당 ID에 따라 행의 순서 부가됩니다. 행 ID는 새 행이 삽입되면 단조롭게 증가하는 6 바이트의 필드입니다. 따라서 행 ID로 정렬 된 행이 실제로 삽입 순서입니다.

클러스터 된 인덱스에서 쿼리를 빠르게하는 방법

클러스터 된 인덱스에서 행에 액세스하면 인덱스 검색이 모든 행 데이터가있는 페이지에서 직접 실행되기 때문에 속도가 빨라집니다. 대부분의 경우 테이블의 크기가 큰 경우에 클러스터 된 인덱스 아키텍처를 사용하면 인덱스 레코드와는 다른 페이지에 행 데이터를 저장하는 스토리지 구성에 비해 디스크 I / O 작업을 절약 할 수 합니다. (예를 들어 MyISAM 에서는 데이터 행에 사용되는 파일과 인덱스 레코드에 사용되는 파일은 다릅니다.)

보조 인덱스와 클러스터 된 인덱스와의 관계

클러스터 된 인덱스 이외의 인덱스는 모든 보조 인덱스 라고합니다. InnoDB 는 보조 인덱스의 각 레코드에 행의 기본 키 컬럼 및 보조 인덱스에 지정된 컬럼이 포함됩니다. InnoDB 는 클러스터 된 인덱스에서 행을 검색 할 때이 기본 키 값이 사용됩니다.

기본 키가 길어지면 보조 인덱스에서 사용되는 영역도 많아지기 때문에 기본 키는 짧은 것이 장점이 있습니다.

InnoDB 의 클러스터 인덱스와 보조 인덱스의 장점을 얻기위한 코딩 지침은 섹션 8.3.2 "기본 키 사용" , 섹션 8.3 "최적화와 인덱스" , 섹션 8.5 "InnoDB 테이블의 최적화」 , 섹션 8.3.2 "기본 키 사용" 을 참조하십시오.

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