(MySQL) MySQL 파티션의 종류

1. 레인지 파티션

파티션키의 연속된 범위로 파티션을 정의하는 방법, 다른 파티션방법과는 달리 MAXVALUE라는 키워드를 이용해 명시되지 않은 범위의 키 값이 담긴 레코드를 저장하는 파티션을 정의 할 수 있다.

CREATE TABLE employees(
 id INT NOT NULL,
 first_name VARCHAR(30),
 last_name VARCHAR(30),
 hired DATE NOT NULL DEFAULT '1970-01-01',
 ....)ENGINE=INNODB
PARTITION BY RANGE (YEAR(hired))(
 PARTITION p0 VALUES LESS THAN(1991) ENGINE=INNODB,
 PARTITION p1 VALUES LESS THAN(1996) ENGINE=INNODB,
 PARTITION p2 VALUES LESS THAN(2001) ENGINE=INNODB,
 PARTITION p3 VALUES LESS THAN MAXVALUE ENGINE=INNODB
);

****레인지 파티션 주의사항*******
 레인지 파티션에서 NULL은 어떤 값보다 작은 값으로 간주된다. 만약 Employees파티션 테이블에 hired칼럼이 NULL인 레코드가 INSERT된다면 이 레코드는 입사 일자가 가장작은 값을 저장하는 p0파티션으로 저장된다.
날짜 칼럼의 값으로 파티션을 만들경우, 다음과 같은 파티션 키를 상요하는 파티셔닝은 피하는 것이좋다.

  • UNIX_TIMESTAMP()를 이용한 변환 식을 파티션 키로 사용
  • 날짜를 무자열로 포맷팅한 형태('2011-12-30')의 파티션 키
  • YEAR()나 TO_DAYS()함수 이외의 함수가 사용된 파티션 키




댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기