본문 바로가기
프로N잡러/프로그래밍&자격증

[GPDB] 4-1. Data Definition Language(DDL) : Table

by 뮤지구 2024. 1. 9.

Table


1) Column & Data Type

  • 적절한 data type 지정
    - text, varchar > char
    - int, smallint > bigint
  • table join시 동일한 data type 사용
  • constraint
    - check, not null, unique, primary key, foreign key (외래키는 허용되나 강제되지 않음, 없다고 봐도 됨)

2) Storage 방식

  • Heap
    - Row 기반 적재 방식
    - 빈번한 update 가 이뤄지는 경우 사용 (가공 처리 등)
    - row lock 지원 (GPv6 부터 지원)
  • Append-Optimized
    - Row 기반, Column 기반, 압축 지원 방식(옵션에 따라 70~95%)
    - 조회 중심의 테이블인 경우 사용
    - I/O 최적화 목적
    - pk, unique index 생성 불가

※ GPv6 까지는 압축+ row 단위 lock 동시 불가. 

(참고) 압축 옵션 
- 압축 속도 : QuickLZ > zlib > zstd 
- 압축 성능 : QuickLZ < zlib < zstd
- GPv6 에서 zstd 사용 권장하며, zlib 사용하는 경우 compresslevel=5, zstd compresslevel=5 or 7 가이드 

  • 적재 옵션 지정은 아래 4가지 방식으로 가능 (role 까지만 권장)
    - Object level : CREATE TABLE … WITH ( storage_option);
    - Role level : ALTER ROLE … SET gp_default_storage_options 'storage_option';
    - Database Level : ALTER DATABASE … SET gp_default_storage_options 'storage_option';
    - System Level : gpconfig -c gp_default_storage_options -v 'storage_option';

3) CREATE TABLE 구문

  • LIKE 구문 사용하여 기존 테이블과 동일한 형태의 테이블 생성 가능


Quiz


x, x, 1