Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 9.0.0 | 

개요

분할 기법(partitioning)은 하나의 테이블을 여러 독립적인 논리적 단위로 분할하는 기법이다. 분할 기법에서 사용하는 분할된 단위를 분할(partition)이라 한다. 분할은 주로 관리의 편의, 성능, 가용성의 목적으로 사용한다. 분할을 적용함으로써 얻을 수 있는 효과는 다음과 같다.

  • 대용량 테이블의 관리 향상
  • 데이터 조회 시 접근 범위를 줄임으로써 성능 향상
  • 디스크 I/O를 분산함으로써 성능 향상 및 물리적 부하 감소
  • 여러 분할로 나눔으로써 전체 데이터의 훼손 가능성 감소 및 가용성 향상
  • 스토리지 비용의 최적화

CUBRID는 영역 분할(Range Partitioning), 해시 분할(Hash Partitioning), 리스트 분할(List Partitioning)의 세 가지 분할을 제공한다.

한 테이블이 가질 수 있는 최대 분할 수는 1024이다. 테이블의 각 분할은 그 테이블의 서브 테이블로 생성된다. 분할 정의를 통해 생성된 서브 테이블은 사용자가 임의로 내용을 변경하거나 삭제할 수 없다. 서브 테이블의 이름은 'class_name__p__partition_name'의 형식으로 시스템 테이블에 등록된다. 데이터베이스 사용자는 db_class 뷰와 db_partition 뷰에서 분할의 정보를 확인할 수 있다. 또 다른 확인 방법은 CUBRID 매니저나 CSQL 인터프리터의 ;sc <테이블명> 명령을 사용하는 것이다.

분할 표현식에 사용할 수 있는 데이터 타입

분할 키로 사용할 수 있는 칼럼의 데이터 타입은 다음과 같다.

  • CHAR
  • VARCHAR
  • NCHAR
  • VARNCHAR
  • SMALLINT
  • INT
  • BIGINT
  • DATE
  • TIME
  • TIMESTAMP
  • ENUM

다음과 같은 연산자 함수를 분할키에 적용하는 분할 표현식에 사용할 수 있다.

  • 숫자 관련 연산자 함수
  • +, -, *, /, MOD, STRCAT, FLOOR, CEIL, POWER, ROUND, ABS, TRUNC
  • 문자열 관련 연산자 함수
  • POSITION, SUBSTRING, OCTEC_LENGTH, BIT_LENGTH, CHAR_LENGTH, LOWER, UPPER, TRIM, LTRIM, RTRIM, LPAD, RPAD, REPLACE, TRANSLATE
  • 날짜 관련 연산자 함수
  • ADD_MONTH, LAST_DAY, MONTH_BETWEEN, SYS_DATE, SYS_TIME, SYS_TIMESTAMP, TO_DATE, TO_NUMBER, TO_TIME, TO_TIMESTAMP, TO_CHAR
  • 기타 관련 연산자 함수
  • EXTRACT, CAST