ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MySQL 파티셔닝 방법 (Query 예제)
    개발 & 계발/MySQL 2019. 8. 28. 13:01
    반응형

    CREATE TABLE partition_test(
    name varchar(30) default '',
    reg_date datetime default CURRENT_TIMESTAMP,
    key idx_name(name)
    )
    PARTITION BY RANGE (YEAR(reg_date))(
    PARTITION p2019 VALUES LESS THAN (2020),
    PARTITION p2020 VALUES LESS THAN (2021),
    PARTITION p2021 VALUES LESS THAN (2022),
    PARTITION pmax VALUES LESS THAN MAXVALUE
    );

    ALTER TABLE partition_test REORGANIZE PARTITION pmax INTO (
    PARTITION p2022 VALUES LESS THAN (2023),
    PARTITION pmax VALUES LESS THAN MAXVALUE
    );

    ALTER TABLE partition_test REORGANIZE PARTITION pmax INTO (
    PARTITION p2023 VALUES LESS THAN (2024),
    PARTITION pmax VALUES LESS THAN MAXVALUE
    );

    SELECT TABLE_SCHEMA, TABLE_NAME, PARTITION_NAME, PARTITION_ORDINAL_POSITION, TABLE_ROWS
    FROM INFORMATION_SCHEMA.PARTITIONS
    WHERE TABLE_NAME =  'tb_except';


    CREATE TABLE tb_except(
    seq int(11) not null auto_increment, key idx_seq(seq),
    ip char(15), key idx_ip(ip),
    msg varchar(500) not null,
    server char(1),
    PlainText varchar(2000),
    event_date datetime not null default CURRENT_TIMESTAMP
    )
    PARTITION BY RANGE (YEAR(event_date))(
    PARTITION p2019 VALUES LESS THAN (2020),
    PARTITION p2020 VALUES LESS THAN (2021),
    PARTITION p2021 VALUES LESS THAN (2022),
    PARTITION p2022 VALUES LESS THAN (2023),
    PARTITION p2023 VALUES LESS THAN (2024),
    PARTITION p2024 VALUES LESS THAN (2025),
    PARTITION p2025 VALUES LESS THAN (2026),
    PARTITION p2026 VALUES LESS THAN (2027),
    PARTITION p2027 VALUES LESS THAN (2028),
    PARTITION p2028 VALUES LESS THAN (2029),
    PARTITION pmax VALUES LESS THAN MAXVALUE
    );

    ALTER TABLE tb_except REORGANIZE PARTITION pmax INTO (
    PARTITION p2029 VALUES LESS THAN (2030),
    PARTITION pmax VALUES LESS THAN MAXVALUE
    );

    ALTER TABLE tb_except DROP PARTITION p2029;

Designed by Tistory.