• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 1. MySQL Partitioning 개요
    2. Partitioning Types
    3. 파티션 관리
    1. RANGE 및 LIST 파티션 관리
    2. HASH 및 KEY 파티션 관리
    3. 파티션과 서브 파티션 테이블로 교체
    4. 파티션 유지 보수
    5. 파티션에 대한 정보 얻기
    4. Partition Pruning
    5. 파티션 선택
    6. 파티셔닝 제약 및 제한
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

19.3.2 HASH 및 KEY 파티션 관리

해시 또는 키를 파티션 된 테이블은 파티션 설정에서 변경 사항을 서로 비슷하지만, 범위 또는 목록에 의해 분할 된 테이블과 몇 가지 점에서 다릅니다. 따라서이 섹션에서는 해시 또는 키를 파티션 된 테이블의 변경 내용 만 다룹니다. 범위 또는 목록에 의해 분할 된 테이블의 파티션을 추가 및 제거 할 내용은 섹션 19.3.1 "RANGE 및 LIST 파티션 관리" 를 참조하십시오.

HASH 또는 KEY 로 파티션 된 테이블에서 RANGE 또는 LIST 에 의해 분할 된 테이블과 동일한 방법으로 파티션을 제거 할 수 없습니다. 그러나 ALTER TABLE ... COALESCE PARTITION 문을 사용하여 HASH 또는 KEY 파티션을 병합 할 수 있습니다. 클라이언트에 대한 데이터가 포함되어있는 12 개의 분할 된 테이블이 있다고합니다. clients 테이블은 다음과 같이 정의되어 있습니다.

 CREATE TABLE clients (
     id INT,
     fname VARCHAR (30)
     lname VARCHAR (30)
     signed DATE
 )
 PARTITION BY HASH (MONTH (signed))
 PARTITIONS 12;

파티션의 수를 12 개에서 8 개로 줄일 경우 다음 ALTER TABLE 명령을 실행합니다.

 mysql> ALTER TABLE clients COALESCE PARTITION 4;
 Query OK, 0 rows affected (0.02 sec)

COALESCE 는 HASH , KEY , LINEAR HASH 또는 LINEAR KEY 로 파티션 된 테이블에서 동등하게 잘 작동합니다. 다음 예제는 이전 예제와 비슷하지만 테이블이 LINEAR KEY 에 의해 분할되는 점만이 다릅니다.

 mysql> CREATE TABLE clients_lk (
     -> id INT,
     -> fname VARCHAR(30),
     -> lname VARCHAR(30),
     -> signed DATE
     -> )
     -> PARTITION BY LINEAR KEY(signed)
     -> PARTITIONS 12;
 Query OK, 0 rows affected (0.03 sec)

 mysql> ALTER TABLE clients_lk COALESCE PARTITION 4;
 Query OK, 0 rows affected (0.06 sec)
 Records : 0 Duplicates : 0 Warnings : 0

COALESCE PARTITION 뒤의 숫자는 나머지에 병합 파티션의 수입니다. 즉, 테이블에서 삭제할 파티션의 수입니다.

테이블에 들어있는 것보다 많은 파티션을 삭제하려고하면 다음과 같은 오류가 발생합니다.

 mysql> ALTER TABLE clients COALESCE PARTITION 18;
 ERROR 1478 (HY000) : Can not remove all partitions, use DROP TABLE instead

clients 테이블 파티션의 수를 12 개에서 18 개로 늘릴 경우 다음과 같이 ALTER TABLE ... ADD PARTITION 을 사용합니다.

 ALTER TABLE clients ADD PARTITION PARTITIONS 6;


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved