下面是一个 MySQL 创建分区表的示例,假设我们有一个名为 orders 的订单表,需要按照时间(order_date)分区:
CREATE TABLE orders (
order_id INT NOT NULL,
customer_id INT NOT NULL,
order_date DATE NOT NULL,
total_amount DECIMAL(10,2) NOT NULL
)
PARTITION BY RANGE (YEAR(order_date)) (
PARTITION p0 VALUES LESS THAN (2016),
PARTITION p1 VALUES LESS THAN (2017),
PARTITION p2 VALUES LESS THAN (2018),
PARTITION p3 VALUES LESS THAN MAXVALUE
);
这个语句创建了一个名为 orders 的订单表,并按照 order_date 字段进行了分区。使用 RANGE 分区方式,将数据根据年份划分到不同的分区中。
在上面的示例中,我们定义了 4 个分区:p0、p1、p2 和 p3。其中,p0 分区包含所有 2016 年之前的数据,p1 包含 2016 年的数据,以此类推。最后一个分区 p3 定义为无限大值(MAXVALUE),用于存储未来所有的数据。
当然,在实际应用中可以根据需求灵活定义更多或者更少的分区。