본문 바로가기

Database

복합키 정리

대표 PK를 사용하는 게 유리한 경우

  • 복합키의 정보를 모두 알지 않아도 리소스 관리가 가능할 때(ex : 사용자ID)
  • 데이터를 식별할 수 있는 컬럼의 조합이 유니크하지 않을때(ex. 이름+저자+출판사 로는 동일 명칭의 개정판이 있는 경우 책을 식별할 수 없음)
  • 식별가능한 복합키의 값이 변경 가능할 때

 

복합키를 구성하는 게 유리한 경우

  • 특정 데이터를 식별하는 게 의미가 없는 경우(ID값을 이용해서 데이터를 조작하지 않는경우)
  • 통계성, 기록성 데이터인 경우
  • ex) 걸음기록을 저장하는 테이블, 사용자 별 최근 일주일간 평균 걸음 수를 조회
  • 보통 사용자 + 기록일시 기준으로 복합키를 구성한다.

 

복합키 사용 시 주의 점

  • 복합 키 사용 시 검색 성능이 낮아질 수 있음. 대신 복합 인덱스 사용으로 검색 성능을 높일 수 있음.
  • 복합키를 PK로 지정하는 경우 Table 생성 시 복합인덱스가 자동 생성됨
  • 복합 인덱스를 사용하는 쿼리는 인덱스의 첫 번째 컬럼부터 순차적으로 적용되며, 해당 컬럼에 대한 정렬을 수행함. 따라서 인덱스 컬럼의 순서가 매우 중요함
  • 복합 인덱스의 컬럼의 순서는 카디널리티(cardinality)가 높은 것(데이터 중복도가 낮은)부터 카디널리티가 낮은(데이터 중복도가 높은) 순으로 나열하는 것이 좋음
  • ex) name, age 순

'Database' 카테고리의 다른 글

Hot block 관련 글  (0) 2024.03.12
VMware CentOS7에 mariaDB 설치,Workbench 연결  (0) 2024.03.06