출처 : MySQL Partition 파티션(1) - 정의와 기능 설명 파티션 제약사항 | Hoing
* 현재 운영 테이블 COLUMN의 경우 년월일시형태의 문자열로 구성되어있는 상태입니다,,,,
Data Type 이 VARCHAR 이다 보니 , 년월일시형태의 문자열 VARCHAR COLUMN 을 기준으로
파티션을 RANGE 로 구성하여 테스트 진행 해보았습니다.
* TABLE에 Partition 구성시에 PRIMARY KEY COLUMN을 구성하시려는 경우 PARTITION을 구성하는 컬럼 이외에 다른 컬럼으로 지정은 안되는 것을 확인 하였습니다 -0-;;;; [ Partition을 구성하는 컬럼이 무조건 포함되어야 하는 것 같습니다 -_-;;; ]
/* VARCHAR 형태 COLUMN 에 RANGE 구성 */
CREATE TABLE `tb_test_varchar`
(
`REGDT` VARCHAR(24) NOT NULL COMMENT '등록일시' COLLATE 'utf8_general_ci',
`VAL` VARCHAR(50) NULL COLLATE 'utf8_general_ci'
)
PARTITION BY RANGE COLUMNS(REGDT)
(
PARTITION p0 VALUES LESS THAN ('20230101000000') ENGINE=INNODB,
PARTITION p1 VALUES LESS THAN ('20240101000000') ENGINE=INNODB,
PARTITION p2 VALUES LESS THAN ('20250101000000') ENGINE=INNODB,
PARTITION p3 VALUES LESS THAN ('20260101000000') ENGINE=INNODB,
PARTITION p4 VALUES LESS THAN MAXVALUE ENGINE=INNODB
);
/* DATE 형태 COLUMN 에 RANGE 구성 */
CREATE TABLE `tb_test_date`
(
`REGDT` DATE NOT NULL COMMENT '등록일시' COLLATE 'utf8_general_ci',
`VAL` VARCHAR(50) NULL COLLATE 'utf8_general_ci'
)
PARTITION BY RANGE COLUMNS(REGDT)
(
PARTITION p0 VALUES LESS THAN ('2023-01-01') ENGINE=INNODB,
PARTITION p1 VALUES LESS THAN ('2024-01-01') ENGINE=INNODB,
PARTITION p2 VALUES LESS THAN ('2025-01-01') ENGINE=INNODB,
PARTITION p3 VALUES LESS THAN ('2026-01-01') ENGINE=INNODB,
PARTITION p4 VALUES LESS THAN MAXVALUE ENGINE=INNODB
);
/* 테스트 데이터 INSERT 처리 진행 */
INSERT tb_test_varchar
SELECT '20230613000000','A' UNION
SELECT '20240613000000','B' UNION
SELECT '20250613000000','C' UNION
SELECT '20260613000000','D' UNION
SELECT '20270613000000','E'
INSERT tb_test_date
SELECT '2023-06-13','A' UNION
SELECT '2024-06-13','B' UNION
SELECT '2025-06-13','C' UNION
SELECT '2026-06-13','D' UNION
SELECT '2027-06-13','E'
/* 파티션 조회 확인 테스트 */
EXPLAIN PARTITIONS
SELECT * FROM TB_TEST_VARCHAR
WHERE 1=1
AND REGDT >= '20220101000000'
AND REGDT <= '20230101000000' ;
EXPLAIN PARTITIONS
SELECT * FROM TB_TEST_DATE
WHERE 1=1
AND REGDT >= '2023-06-13'
AND REGDT <= '2026-06-13' ;
* mysql 의 해당 data 디렉터리의 Table 관련 파일 확인시에도 Partition 이름 별로
File이 구분되어 생성 된 것을 확인 하였습니다~!
'MYSQL' 카테고리의 다른 글
[Windows MariaDB] Please use mysql_upgrade to fix this error (0) | 2021.07.14 |
---|---|
Maria DB TRIGGER BEFORE INSERT 를 이용하여 값 변경 진행 (0) | 2019.09.18 |
[Mysql 5.6] password_validation.dll plug-in을 이용한 계정 패스워드 체크 (0) | 2018.11.06 |
[MYSQL 5.6] WHILE 문 무한반복 예제 (0) | 2017.08.28 |
[MYSQL] 스크립트를 파일을 이용한 DB 생성시 한글깨짐 현상 해결 (0) | 2016.12.27 |