안녕하세요 안젤라입니다 😇
오늘은 새로운 테이블 생성할때 함께 파티셔닝 설정하기에 대해서 포스팅을 준비했습니다.
새로운 테이블 생성 시 파티셔닝 추가 쿼리
CREATE TABLE tb_api_log
(
id BIGINT UNSIGNED AUTO_INCREMENT COMMENT 'API 로그 ID',
type VARCHAR(3) NOT NULL COMMENT 'API 타입 (S: 송신, R: 수신, E: 에러)',
target VARCHAR(10) NOT NULL COMMENT '요청 타겟 (core, api)',
method VARCHAR(10) NOT NULL COMMENT '요청자 메소드',
url VARCHAR(255) NOT NULL COMMENT '요청자 주소',
ip VARCHAR(50) NOT NULL COMMENT '요청자 IP',
content JSON NULL COMMENT '요청 또는 처리에 대한 내용 (JSON 형식)',
created_date DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT 'API 로그 등록 시간',
PRIMARY KEY (id, created_date)
) COMMENT 'API 통신로그' CHARSET = utf8mb4
COLLATE = utf8mb4_general_ci
PARTITION BY RANGE (TO_DAYS(created_date)) (
PARTITION p202301 VALUES LESS THAN (TO_DAYS('2023-02-01')),
PARTITION p202302 VALUES LESS THAN (TO_DAYS('2023-03-01')),
PARTITION p202303 VALUES LESS THAN (TO_DAYS('2023-04-01')),
PARTITION p202304 VALUES LESS THAN (TO_DAYS('2023-05-01')),
PARTITION p202305 VALUES LESS THAN (TO_DAYS('2023-06-01')),
PARTITION p202306 VALUES LESS THAN (TO_DAYS('2023-07-01')),
PARTITION p202307 VALUES LESS THAN (TO_DAYS('2023-08-01')),
PARTITION p202308 VALUES LESS THAN (TO_DAYS('2023-09-01')),
PARTITION p202309 VALUES LESS THAN (TO_DAYS('2023-10-01')),
PARTITION p202310 VALUES LESS THAN (TO_DAYS('2023-11-01')),
PARTITION p202311 VALUES LESS THAN (TO_DAYS('2023-12-01')),
PARTITION p202312 VALUES LESS THAN (TO_DAYS('2024-01-01')),
PARTITION pmax VALUES LESS THAN (MAXVALUE)
);
CREATE INDEX idx_type ON tb_api_log(type);
CREATE INDEX idx_target ON tb_api_log(target);
CREATE INDEX idx_method ON tb_api_log(method);
CREATE INDEX idx_url ON tb_api_log(url);
CREATE INDEX idx_ip ON tb_api_log(ip);
테이블은 id 및 created_date 열을 기반으로 한 주요 키를 가지고 있으며, 날짜에 따라 파티션을 나누어 데이터를 효과적으로 저장하도록 구성되어 있습니다. 또한, 다양한 검색을 위해 type, target, method, url, ip 열에 대한 인덱스가 생성되어 있습니다.
오늘도 조금 더 성장하는 하루가 되었길 바랄게요 🙏
'DB > MySQL' 카테고리의 다른 글
[MySQL] 파티셔닝(Partitioning) 적용 (3) 성능 테스트 (1) | 2024.01.23 |
---|---|
[MySQL] 파티셔닝(Partitioning) 적용 (1) 기존의 테이블을 변경하기 - 연도,월,일별 파티셔닝 (0) | 2023.03.27 |
mysql 복원 및 백업 (0) | 2017.10.27 |
(Windows / zip버전) Mysql 설치 [1] 다운로드 (0) | 2017.08.03 |
(Windows / msi버전) Mysql 설치 [2] toad 설정 (0) | 2017.08.03 |