文档中心MogDBMogDB StackUqbar
v3.1

文档:v3.1

支持的版本:

其他版本:

何时使用范围分区

范围分区在组织类似的数据时很有用,尤其是日期和时间数据。

范围分区是一种方便的历史数据分区方法。范围分区的边界定义了表或索引中分区的顺序。

大多数访问范围分区的SQL语句都关注时间范围。例如类似于“从特定时间段选择数据”的SQL语句。如果每个分区代表一个月内的数据,扫描的数据量减少为总数据的一小部分,这种优化方法称为分区裁剪

当您需要定期加载新数据并清除旧数据时,范围分区也很有用,因为范围分区很容易添加或删除。例如,系统通常会保留一个滚动的数据窗口,将过去36个月的数据保持为在线状态。范围分区简化了这个过程。

总之,在以下情况下您可以考虑使用范围分区:

  • 经常需要对大型表中容易分区的列进行范围谓词扫描。
  • 希望维护一个滚动的数据窗口。
  • 无法在指定时间范围内对大型表完成管理操作,例如备份和还原,但可以根据分区范围列将其分成更小的逻辑块。

示例1 创建具有范围分区的表

CREATE TABLE sales_table
(
    order_no              INTEGER          NOT NULL,
    goods_name            CHAR(20)         NOT NULL,
    sales_date            DATE             NOT NULL,
    sales_volume          INTEGER,
    sales_store           CHAR(20)
)
PARTITION BY RANGE(sales_date)
(
        PARTITION season1 VALUES LESS THAN('2021-04-01 00:00:00'),
        PARTITION season2 VALUES LESS THAN('2021-07-01 00:00:00'),
        PARTITION season3 VALUES LESS THAN('2021-10-01 00:00:00'),
        PARTITION season4 VALUES LESS THAN(MAXVALUE)
);
Copyright © 2011-2024 www.enmotech.com All rights reserved.