파티션 테이블 인덱스 관련 질문입니다. 0 0 5,377

by BJP [DB 모델링/설계] 파티션 인덱스 [2024.10.02 11:06:58]


기존 설계된 파티션 테이블 설계가 제대로 되어있는지 확신이 없어 질문드립니다.

주로 특정 날짜 범위 데이터(1일 ~ 1달)를 조회하는 것이 주된 케이스입니다.

테이블 예시는 아래와 같습니다.

create table document_log (
    log_id varchar(46),
    partition_date timestamp,
    log_type int,
    primary key(log_id, partition_date)
) PARTITION BY RANGE (partition_date);

create index idx_1 on temp_table (log_type)

이고 테이블은 월별 파티션으로 만들었습니다. (SQL은 생략)

여기서 검색 조건으로 partition_date, log_type 을 주어 범위 검색을 한다고 하면

(select * from temp_table partition_date >= '2024-09-17' and partition_date < '2024-09-21' and log_type = 10;)

partition_date로 특정 월을 지정할 수는 있겠지만 그 월 파티션 내에서 log_type 인덱스를 타고 나온 결과를 풀스캔해야 할  것 같습니다.

이런 경우 log_date라는 partition_date 와 같은 값을 가진 컬럼을 두고

create index idx_1 on temp_table (log_type, log_date)를 하는 것이 맞는 설계인지, 아니면 위 예시 그대로 두는 것이 맞는 설계인지 알고 싶습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입