제19장 Partitioning
이 장에서는 MySQL에서 사용자 정의 파티션의 구현에 대해 설명합니다. 사용하고있는 MySQL 서버가 파티셔닝을 지원하는지 여부를 판별하려면 다음과 같이 SHOW PLUGINS
문의 출력을 확인합니다.
MySQL의 이전 버전에는 have_partitioning
변수가 있었지만, MySQL 5.6.1에서 삭제되었습니다.
mysql> SHOW PLUGINS;
+------------+----------+----------------+---------+---------+
| Name | Status | Type | Library | License |
+------------+----------+----------------+---------+---------+
| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL |
| partition | ACTIVE | STORAGE ENGINE | NULL | GPL |
| ARCHIVE | ACTIVE | STORAGE ENGINE | NULL | GPL |
| BLACKHOLE | ACTIVE | STORAGE ENGINE | NULL | GPL |
| CSV | ACTIVE | STORAGE ENGINE | NULL | GPL |
| FEDERATED | DISABLED | STORAGE ENGINE | NULL | GPL |
| MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL |
| InnoDB | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| ndbcluster | DISABLED | STORAGE ENGINE | NULL | GPL |
+------------+----------+----------------+---------+---------+
11 rows in set (0.00 sec)
다음과 같은 쿼리를 사용하여 INFORMATION_SCHEMA.PLUGINS
테이블을 확인 할 수 있습니다.
mysql>SELECT
->PLUGIN_NAME as Name,
->PLUGIN_VERSION as Version,
->PLUGIN_STATUS as Status
->FROM INFORMATION_SCHEMA.PLUGINS
->WHERE PLUGIN_TYPE='STORAGE ENGINE';
+--------------------+---------+--------+ | Name | Version | Status | +--------------------+---------+--------+ | binlog | 1.0 | ACTIVE | | CSV | 1.0 | ACTIVE | | MEMORY | 1.0 | ACTIVE | | MRG_MYISAM | 1.0 | ACTIVE | | MyISAM | 1.0 | ACTIVE | | PERFORMANCE_SCHEMA | 0.1 | ACTIVE | | BLACKHOLE | 1.0 | ACTIVE | | ARCHIVE | 3.0 | ACTIVE | | InnoDB | 5.6 | ACTIVE | | partition | 1.0 | ACTIVE | +--------------------+---------+--------+ 10 rows in set (0.00 sec)
두 경우 모두 출력에서 partition
플러그인 Status
컬럼에 값 ACTIVE
가 표시되지 않은 (각각의 예에서 굵게 표시되어 있습니다) 경우 사용하는 버전의 MySQL은 파티셔닝 지원을 포함 하지 않습니다.
오라클에서 제공되는 MySQL 5.6 Community 바이너리는 파티셔닝 지원이 포함되어 있습니다. 상용 MySQL 서버 바이너리에서 제공되는 파티셔닝 지원 내용은 제 25 장 "MySQL Enterprise Edition" 을 참조하십시오.
소스에서 MySQL 5.6을 컴파일하는 경우 파티셔닝을 사용하려면 -DWITH_PARTITION_STORAGE_ENGINE
옵션을 지정하여 빌드를 구성해야합니다. 자세한 내용은 섹션 2.9 "소스에서 MySQL 설치" 를 참조하십시오.
사용하고있는 MySQL 바이너리에 파티셔닝 지원이 포함되어있는 경우는 그것을 사용하기 위해 아무것도 할 필요가 없습니다 (예를 들어, my.cnf
파일에 특별한 항목을 지정할 필요가 없습니다).
파티셔닝 지원을 비활성화하려면 --skip-partition
옵션을 지정해 MySQL 서버를 시작합니다. 이 경우 have_partitioning
값이 DISABLED
입니다. 파티셔닝 지원을 사용하면 기존의 파티션 된 테이블의 표시 및 그 제거 할 수 있지만 (그러나 이렇게하는 것은 권장하지 않습니다), 그렇지 그들을 조작하거나 데이터에 액세스 할 수 없습니다.
파티셔닝 개요 및 파티셔닝의 개념은 섹션 19.1 "MySQL의 파티셔닝 개요" 를 참조하십시오.
MySQL에서는 여러 종류의 파티션 및 서브 파티셔닝을 지원하고 있습니다. 섹션 19.2 "파티션 유형" 및 섹션 19.2.6 "서브 파티셔닝" 를 참조하십시오.
섹션 19.3 "파티션 관리" 는 기존의 파티션 된 테이블에서 파티션을 추가, 삭제 및 수정하는 방법을 설명하고 있습니다.
섹션 19.3.4 "파티션 관리" 에서는 파티션 된 테이블에서 사용하는 테이블 유지 보수 명령에 대해 설명하고 있습니다.
INFORMATION_SCHEMA
데이터베이스 PARTITIONS
테이블에는 파티션 및 파티션 된 테이블에 대한 정보가 있습니다. 자세한 내용은 섹션 21.13 "INFORMATION_SCHEMA PARTITIONS 테이블" 을 참조하십시오. 이 테이블에 대한 쿼리의 몇 가지 예에 대해서는 섹션 19.2.7 "MySQL 파티셔닝에 의한 NULL 처리" 를 참조하십시오.
MySQL 5.6의 파티셔닝의 알려진 문제에 대해서는 섹션 19.6 "파티셔닝 제약 및 제한" 을 참조하십시오.
또한 분할 된 테이블을 사용하여 작업 할 때 다음 리소스가 도움이 될 수 있습니다.
추가 리소스 MySQL의 사용자 정의 파티셔닝에 대한 추가 정보 소스는 다음과 같습니다.
MySQL 파티셔닝 포럼
이것은 MySQL 파티셔닝 기술에 관심이 실험하고있는 사람에 대한 공식적인 토론 포럼입니다. MySQL 개발자 등의 발표와 업데이트가 게재되어 있습니다. 파티셔닝의 개발 팀 및 문서 팀 구성원에 의해 모니터되고 있습니다.
Mikael Ronström 블로그
MySQL 파티셔닝의 설계자 및 수석 개발자 인 Mikael Ronström가 MySQL 파티셔닝 및 MySQL Cluster에 대한 기사를 자주 게재하고 있습니다.
PlanetMySQL
MySQL을 사용하는 사람이 관심을 보인다 MySQL 관련 블로그를 정리 한 MySQL 뉴스 사이트. MySQL 파티셔닝을 사용하는 사람들이 업데이트하고있는 블로그 링크를 여기에서 확인하거나 자신의 블로그를 추가 할 것을 권장합니다.
MySQL 5.6 이진 http://dev.mysql.com/downloads/mysql/5.6.html 에서 구할 수 있습니다. 그러나 최근의 파티셔닝 버그 수정 및 기능 추가가 필요한 경우 Bazaar 저장소에서 소스를 얻을 수 있습니다. 파티션을 활성화하려면 -DWITH_PARTITION_STORAGE_ENGINE
옵션을 지정하여 빌드를 구성해야합니다. MySQL의 빌드 내용은 섹션 2.9 "소스에서 MySQL 설치" 를 참조하십시오. 파티션을 설정 한 MySQL 5.6 빌드 컴파일에서 문제가 발생한 경우, " MySQL Partitioning Forum "을 확인하고 문제의 해결책이 거기 없을 경우 지원을 요청하십시오.