MySQL & MariaDB 파티셔닝의 설정,추가,삭제,재구성
리눅스/MySQL2018. 5. 8. 08:55
반응형
공식 문서
https://dev.mysql.com/doc/refman/5.6/en/partitioning-selection.html
파티션 지원 확인
SHOW VARIABLES LIKE ‘%partition%’;
— 생성
- CREATE TABLE `parttest_tbl` (
- `sid` int(11) NOT NULL AUTO_INCREMENT,
- `f1` varchar(255) CHARACTER SET latin1 DEFAULT NULL,
- PRIMARY KEY (`sid`)
- ) ENGINE=InnoDB AUTO_INCREMENT=202 DEFAULT CHARSET=utf8
- PARTITION BY RANGE (`sid`)
- (PARTITION `c0` VALUES LESS THAN (100) ENGINE = InnoDB,
- PARTITION `c1` VALUES LESS THAN (200) ENGINE = InnoDB,
- PARTITION `c2` VALUES LESS THAN (300) ENGINE = InnoDB,
- PARTITION `cn` VALUES LESS THAN MAXVALUE ENGINE = InnoDB);
— 기존에 사용하는 테이블
- CREATE TABLE `parttest_tbl` (
- `sid` int(11) NOT NULL AUTO_INCREMENT,
- `f1` varchar(255) CHARACTER SET latin1 DEFAULT NULL,
- PRIMARY KEY (`sid`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
— 파티셔닝 생성
- alter table parttest_tbl partition by range (sid)
- (
- partition c0 values less than (100),
- partition c1 values less than (200),
- partition cn values less than MAXVALUE
- );
— 테이블 확인
— 파티셔닝 삭제 (delete 기능 – data 삭제 된다 주의!!)
ALTER TABLE parttest_tbl DROP PARTITION c0;
— 원복 합치기 파티셔닝 삭제
ALTER TABLE parttest_tbl REMOVE PARTITIONING;
— 파티션 확인
- SELECT TABLE_SCHEMA, TABLE_NAME, PARTITION_NAME, PARTITION_ORDINAL_POSITION, TABLE_ROWS
- FROM INFORMATION_SCHEMA.PARTITIONS
- WHERE TABLE_NAME = 'parttest_tbl';
— 파티션 별 select
SELECT * FROM parttest_tbl PARTITION (c0);
SELECT * FROM parttest_tbl PARTITION (c0, c1);
/*
예를 들면 [매월]로 파티션을 나누고 싶어, 테이블에는 [년]과 [월]이 다른 컬럼에 있는 경우.
서브 파티션(복함파티셔닝)을 사용한다.
*/
- ALTER TABLE `parttest_tbl`
- PARTITION BY RANGE (YEAR(`year`))
- SUBPARTITION BY HASH (MONTH(`month`))
- SUBPARTITIONS 12 (
- PARTITION p2013 VALUES LESS THAN (2013) ENGINE = InnoDB,
- PARTITION p2014 VALUES LESS THAN (2014) ENGINE = InnoDB,
- PARTITION p2015 VALUES LESS THAN (2015) ENGINE = InnoDB,
- PARTITION p2016 VALUES LESS THAN (2016) ENGINE = InnoDB,
- PARTITION p2017 VALUES LESS THAN (2017) ENGINE = InnoDB,
- PARTITION p2018 VALUES LESS THAN (2018) ENGINE = InnoDB,
- PARTITION p2019 VALUES LESS THAN (2019) ENGINE = InnoDB,
- PARTITION p2020 VALUES LESS THAN (2020) ENGINE = InnoDB,
- PARTITION pmax VALUES LESS THAN MAXVALUE
- );
[출처] https://www.galgulee.com/mysql-mariadb-%ED%8C%8C%ED%8B%B0%EC%85%94%EB%8B%9D%EC%9D%98-%EC%84%A4%EC%A0%95%EC%B6%94%EA%B0%80%EC%82%AD%EC%A0%9C%EC%9E%AC%EA%B5%AC%EC%84%B1/
반응형
'리눅스 > MySQL' 카테고리의 다른 글
테이블명 변경 (테이블 이름 변경) (0) | 2018.05.17 |
---|---|
mysql 데이터를 날짜로 비교하여 데이터 가져오기 or 삭제하기 (0) | 2018.05.14 |
mariadb 다운로드 주소 (0) | 2018.05.04 |
테이블 복사 및 데이터 복사하기 (0) | 2018.05.02 |
테이블 엔진 변경하기 (0) | 2018.05.01 |
댓글()