KeiStory


PostgreSQL 파티션 (partition) 테이블 만들기

 

파티션 테이블을 만들고 사용하는 방법입니다.

먼저 모테이블을 생성합니다.

create table test.test_partitioned
(
      dt timestamp  tz,
      message   text,
      code  int
)  partition by range(dt);

위 스크립트를 보면 알수 있듯이 dt 컬럼으로 설정해 시간 기준으로 파티션이 설정되었습니다.

 

자식테이블을 생성합니다.

create table test.test_2023_01 partition of test.test_partitioned for values from ('2023-01-01') to ('2023-02-01');

create table test.test_2023_02 partition of test.test_partitioned for values from ('2023-02-01') to ('2023-03-01');

create table test.test_default partition of test.test_partitioned default;

2023_01 , 2023_02 자식 파티션 테이블이 생성되었습니다.

설정한 내용대로 기간 사이의 값이 들어오게되면 자식 파티션 테이블로 insert 되고 나머지 값들은 default 테이블에 insert 됩니다.


아래는 추가로 자식 파티션 테이블을 생성하는 명령입니다.

 

alter table test.test_partitioned attach partition test.test_2023_03 for values from ('2023-03-01') to ('2023-04-01')

 

자식 파티션 테이블을 삭제하는 명령은 아래와 같습니다.

alter table test.test_partitioned detach partition test.test_2023_02;


아래처럼 데이터를 insert 하게되면 해당 데이터는 시간 값에 범위에있는 파티션 테이블에 저장됩니다.

insert into test.test_partitioned values ('2023-01-10', 'test message', 1);

 

파티션 테이블의 장단점

장점 단점
대규모 데이터 관리에 유리 설계 및 유지보수 작업 필요
데이터 검색 속도 향상 잘못된 설계 시 성능 저하 발생 가능
데이터 삭제 작업이 빠름 일부 SQL 제약 조건 제한
특정 파티션만 백업 가능 데이터 이동이 복잡할 수 있음

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band