[MySQL] 테이블 파티셔닝

728x90

Partioning 관련


  • 현재 파티셔닝 확인
    SELECT * FROM information_schema.partitions WHERE TABLE_NAME='테이블명';​
  • 파티션 생성
    • 연도 기준으로 파티션을 나누는 예시
    • 테이블명_yxxxx는 파티션명 예시
      ALTER TABLE 테이블명 PARTITION BY RANGE (TO_DAYS(`기준 컬럼`))
      (
      	PARTITION 테이블명_y0000 VALUES LESS THAN (0),
          PARTITION 테이블명_y2023 VALUES LESS THAN (TO_DAYS('2023-12-31 23:59:59') + 1),
          PARTITION 테이블명_y2024 VALUES LESS THAN (TO_DAYS('2024-12-31 23:59:59') + 1) 
      );​
    • PRIMARY KEY 에러 : 기준컬럼이 PRIMARY KEY로 등록이 안되어있어서 나는 에러, 기준컬럼을 변경하던가 PRIMARY KEY로 추가해주면 된다
      # 기준컬럼 PRIMARY KEY로 추가
      ALTER TABLE 테이블명 DROP PRIMARY KEY, ADD PRIMARY KEY (seq, 기준컬럼)​
  • 파티션 추가
    ALTER TABLE 테이블명 ADD PARTITION (PARTITION 파티션명 VALUES LESS THAN (TO_DAYS('기간') + 1))​

 

'개발 지식 > MySQL' 카테고리의 다른 글

[MySQL] Linux MariaDB 데이터저장 위치 변경  (1) 2024.01.30
[MySQL] MariaDB TimeZone 변경  (1) 2024.01.06