문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
database:mysql:partition [2019/01/31 19:58] kwon37xi |
database:mysql:partition [2019/08/30 15:11] (현재) kwon37xi |
||
|---|---|---|---|
| 줄 6: | 줄 6: | ||
| ===== 단점 / 제약 ===== | ===== 단점 / 제약 ===== | ||
| * [[https:// | * [[https:// | ||
| + | * 한 테이블 파티션의 최대 개수는 8192 개이다(NDB 제외). | ||
| + | * 파티션 갯수가 많아지면 open files 도 커져야 한다. [[linux: | ||
| * 모든 파티션은 동일한 스토리지 엔진 사용 : 파티션별 다른 엔진을 지정하여도 에러가 발생하지는 않지만 적용되는것은 아니다. | * 모든 파티션은 동일한 스토리지 엔진 사용 : 파티션별 다른 엔진을 지정하여도 에러가 발생하지는 않지만 적용되는것은 아니다. | ||
| * 테이블과 인덱스를 별도로 파티션 할수는 없다. 테이블과 인덱스를 같이 Partitioning 하여야 한다. | * 테이블과 인덱스를 별도로 파티션 할수는 없다. 테이블과 인덱스를 같이 Partitioning 하여야 한다. | ||
| 줄 11: | 줄 13: | ||
| * Partition 된 테이블은 FullText Index 를 지원하지 않는다. | * Partition 된 테이블은 FullText Index 를 지원하지 않는다. | ||
| * Partition 된 테이블은 Geometry(point, | * Partition 된 테이블은 Geometry(point, | ||
| - | * 한 테이블당 파티션의 갯수는 최대 1, | ||
| * Temp Table 은 파티션 사용 불가. | * Temp Table 은 파티션 사용 불가. | ||
| * Partition 값은 정수형이어야 한다. | * Partition 값은 정수형이어야 한다. | ||
| * 테이블이 Unique 또는 Primary Key를 가지고 있다면, 파티션키는 모든 Unique 또는 Primary Key의 일부 또는 모든 컬럼을 포함해야 한다. | * 테이블이 Unique 또는 Primary Key를 가지고 있다면, 파티션키는 모든 Unique 또는 Primary Key의 일부 또는 모든 컬럼을 포함해야 한다. | ||
| + | * 파티션 키의 표현식은 일반적으로 컬럼 그 자체 또는 MySQL 내장 함수를 사용할 수 있는데, 여기서 MySQL 내장 함수를 모두 사용할 수 있는 것이 아니라 일부만 사용할 수 있습니다. (자세한 함수 목록은 현재 사용중인 | ||
| + | |||
| + | ===== Partition 관련 명령 ===== | ||
| + | * [[https:// | ||
| + | |||
| + | ==== DROP PARTITION ==== | ||
| + | * 파티션 자체를 삭제한다. 데이터도 함께. < | ||
| + | ALTER TABLE t1 DROP PARTITION p0, p1; | ||
| + | </ | ||
| + | * 파티션의 데이터를 비운다. 파티션 자체는 계속 존재한다.< | ||
| + | CREATE TABLE t1 ( | ||
| + | id INT, | ||
| + | year_col INT | ||
| + | ) | ||
| + | PARTITION BY RANGE (year_col) ( | ||
| + | PARTITION p0 VALUES LESS THAN (1991), | ||
| + | PARTITION p1 VALUES LESS THAN (1995), | ||
| + | PARTITION p2 VALUES LESS THAN (1999), | ||
| + | PARTITION p3 VALUES LESS THAN (2003), | ||
| + | PARTITION p4 VALUES LESS THAN (2007) | ||
| + | ); | ||
| + | |||
| + | ALTER TABLE t1 TRUNCATE PARTITION p0; | ||
| + | -- 아래와 동일 | ||
| + | DELETE FROM t1 WHERE year_col < 1991; | ||
| + | |||
| + | -- 복수개 삭제 | ||
| + | ALTER TABLE t1 TRUNCATE PARTITION p1, p3; | ||
| + | |||
| + | -- 진짜로 해당 파티션 데이터가 삭제 됐는지 확인 | ||
| + | SELECT PARTITION_NAME, | ||
| + | FROM INFORMATION_SCHEMA.PARTITIONS | ||
| + | WHERE TABLE_NAME = ' | ||
| + | </ | ||
| ===== 참조 ===== | ===== 참조 ===== | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| * [[http:// | * [[http:// | ||
| - | + | * [[http:// | |