대표 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 |