ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 4장 2.1 프라이머리 키에 의한 클러스터링 인덱스
    데이터베이스/Real MySQL 8.0 2022. 8. 14. 18:40

     

     

     

    먼저 주요 개념들에 대해서 정리하고 넘어가겠습니다.

     

    키(Key)

    데이터베이스에서 조건을 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성입니다.

    키는 같은 의미를 가진 여러 단어로 치환될 수 있습니다.

     

    키 = 애트리뷰트(Attribute) = 속성 = 컬럼(Column)

     

    쉽게 말하면 표의 열에 해당합니다.

     

      애트리뷰트 속성 컬럼
    레코드        
    튜플        

     

    참고로 레코드(Record) = 튜플(Tuple)은 행에 해당합니다.

     

     

    키 중에서도 특별한 성질을 가진 키들이 있는데, 그중에서 프라이머리 키만 알아보도록 하겠습니다.

     

    프라이머리 키(Primary Key)

    기본 키(프라이머리 키)는 어떤 레코드를 고유한 레코드로 만들어주는 중복될 수 없는 값(식별자)입니다.

    주민등록번호나 ID, 신용카드번호와 같은 예를 들 수 있겠습니다.

     

    어떤 김민수라는 사람이 있으면 이름이 같은 사람은 무수히 많을 것입니다.

    심지어 생일까지 같은 사람이 있을 수 있겠죠.

     

    하지만 김민수들은 주민등록번호에 의해 이 사람이 어떤 김민수인지 특정할 수 있습니다.

    김민수를 고유하게 만들어 주는 것입니다.

     

     

     

    인덱스(Index)

    중요한 단어나 항목 같은 것들을 쉽게 찾아볼 수 있도록 목록으로 만들어 둔 것을 인덱스라고 합니다.

    데이터베이스에서는 어떤 레코드를 쉽게 찾기 위한 레코드와 연결된 주소 목록을 말합니다.

     

    데이터베이스에서 인덱스는 대상 테이블의 키를 기준으로 생성되며,

    키의 값들이 중복이 없어야지만 인덱스로 생성할 수 있습니다.

     

    따라서 프라이머리 키로 인덱스를 주로 생성하게 됩니다.

     

    그중에서 임의의 순서대로 정렬된 인덱스를 클러스터(클러스터링) 인덱스라고 합니다.

     

     

     

    InnoDB의 클러스터링 인덱스(Clustering Index)

     

    • InnoDB는 기본적으로 데이터가 프라이머리 키를 기준으로 클러스터링(정렬)되어 저장됩니다.

    • InnoDB의 세컨더리(보조) 인덱스들은 레코드의 주소 대신
      프라이머리 키 값을 논리적인 주소로 사용하게 됩니다.

    • 프라이머리 키를 이용하여 탐색하는 것이 가장 효율적입니다.

    • 따라서, 쿼리를 실행할 때 보조 인덱스보다 프라이머리 키를 참조할 확률이 높습니다.

    • MyISAM에서는 클러스터 인덱스를 지원하지 않습니다.

     

     

     

    댓글

Designed by Tistory.