본문 바로가기

linux

[Linux] Mysql 파티셔닝(Partitioning)

1. 파티셔닝의 목적

많은 데이터의 빠른 처리를 위한 방법중 하나로 데이터와 인덱스를 조각화하여 물리적 공간을 효율적으로 사용 할 수 있도록 만들어 성능을 개선할 수 있도록 함.

- 특정 데이터 집합의 추가 / 삭제가 간편

- 데이터 검색 시 특정 파티션만 읽어서 속도 향상

- 병렬처리 가능

- 한 테이블에 너무 많은 데이터 입력되었을시 발생하는 속도저하 방지

 

2. 내부 처리

주위 : 파티션에 사용 되는 값은 int, date, datetime형만 가능.

create table tb_1(

int_value int null,

reg_date datetime not null,

..

..

primary key(int_value)

)

parition by range(year(reg_date)){

partition p1 values less than(2012),

partition p2 values less than(2013),

..

..

partition px values less than maxvalue

}

 

 

3. 파티션 종류

range, list, hash, key

 -list

PARTITION BY List (job_code) (
    PARTITION p0 VALUES IN (3),
    PARTITION p1 VALUES IN (1,9),
    PARTITION p2 VALUES IN (2,6,7),
    PARTITION p3 VALUES IN (4,5,8,NULL)

);

 

-hash : range나 list로 균등하기 나누기 어려울 때,

PARTITION BY HASH (id) 

PARTITIONS 4

(

 

    PARTITION p0 ENGINE = INNODB,
    PARTITION p1 ENGINE = INNODB
    PARTITION p2 ENGINE = INNODB
    PARTITION p3 ENGINE = INNODB

);

 

4. 파티션의 추가, 삭제, 분할, 병합

각 파티셔닝 방법에 따라 다름

 

출처 / 참고 : http://blog.hibrainapps.net/131

 

'linux' 카테고리의 다른 글

[Linux] Cent Os 본딩(Bonding)  (0) 2017.02.03
[Linux] Cent Os 설치시 디스크 파티션  (0) 2017.02.03
[Linux] Mysql dump  (0) 2017.02.03
[Linux] 오라클 실행 및 종료  (0) 2017.02.03
[Linux] 리눅스 종료 끄기 / 재시작  (0) 2017.02.03