[DB/SQLD] 테이블 파티션(Table Partition)

1 분 소요

partition 기능

  • 파티션은 대용량의 테이블을 여러개의 데이터 파일에 분리해서 저장한다.
  • 테이블의 데이터가 물리적으로 분리된 데이터 파일에 저장되면 입력, 수정, 삭제, 조회 성능이 향상.
  • 파티션은 각각의 파티션 별로 독립적으로 관리될 수 있다. 즉, 파티션 별로 백업하고 복구가 가능하면 파티션 전용 인덱스 생성도 가능.
  • 파티션은 오라클 데이터베이스의 논리적 관리 단위인 테이블 스페이스 간에 이동이 가능.
  • 데이터를 조회할 때 데이터의 범위를 줄여서 성능을 향상.



1. Range Partition

테이블의 칼럼 중에서 값의 범위를 기준으로 여러개의 파티션으로 데이터를 나누어 저장.

예로들어서 사원번호 1~999는 Datafile1.dbf파일에, 사원번호 1000~1999는 Datafile2.dbf 파일에 저장하는 식이다.



2. List Partition

특정 값을 기준으로 분할하는 방법.

예로들어서 나이가 20살인 사람 데이터는 Datafile1.dbf에 저장하고, 나이가 21일 사람 데이터는 Datafile2.dbf에 저장하는 식이다.



3. Hash Partition

데이터베이스 관리 시스템이 내부적으로 해시 함수를 사용해서 데이터를 분할. 결과적으로 데이터베이스 관리 시스템이 알아서 분할하고 관리한다.



4. Composite Partition

여러개의 파티션 기법을 조합해서 사용.



파티션 인덱스

  • 파티션 인덱스는 4가지 유형의 인덱스를 제공. 즉, 파티션 키를 사용해서 인덱스를 만드는 prefixed index와 해당 파티션만 사용하는 local index 등으로 나누어진다.
  • 오라클 데이터베이스는 global non-prefixed를 지원하지 않는다.

파티션 인덱스(partition index)

구분 주요 내용
global index 여러 개의 파티션에서 하나의 인덱스를 사용
local index 해당 파티션 별로 각자의 인덱스를 사용
prefixed index 파티션 키와 인덱스 키가 동일
non prefixed index 파티션 키와 인덱스 키가 다름