[DB] Primary Key 가 필수인 이유, Clustered Index

Woong·2022년 1월 4일
0

DB

목록 보기
9/16
  • reference

  • RDB 에서는 각 행이 고유하게 식별될 필요가 있음

  • ex) MySQL의 InnoDB는 기본적으로 데이터를 저장하고 Indexing하기 위해 Primary Key를 요구

    • table에 없더라도 생성하여 사용
  • Join 시 PK 를 이용하는 것이 일반적 (Unique한 Key 가 필요)

    • 중복 행이 있다면 Join 연산으로 인한 overhead가 커짐
  • Mysql 기준 PK 는 기본적으로 Cluster Index

    • DB 종류에 따라 다를 수 있음

Clustered Index

  • reference
  • 테이블의 데이터를 지정된 컬럼에 대해 물리적으로 데이터를 재배열한다.
  • Index를 생성할 때는 데이터 페이지 전체를 다시 정렬
    • 사용자가 많은 시간대에 Clustered Index 추가
  • 테이블 당 한개씩만 존재
  • 데이터가 Index로 생성되어 있는 컬럼을 기준으로 정렬되어 삽입된다.
    • 테이블에 삽입되는 순서에 상관없음

0개의 댓글