mysql表分区
CREATE TABLE orders (
order_id INT NOT NULL AUTO_INCREMENT,
customer_id INT NOT NULL,
order_date DATE NOT NULL,
total_amount DECIMAL(10, 2),
PRIMARY KEY (order_id, order_date)
)
PARTITION BY RANGE (YEAR(order_date) * 100 + MONTH(order_date)) (
PARTITION p202301 VALUES LESS THAN (202302), – 2023年1月
PARTITION p202302 VALUES LESS THAN (202303), – 2023年2月
PARTITION p202303 VALUES LESS THAN (202304), – 2023年3月
PARTITION p202304 VALUES LESS THAN (202305), – 2023年4月
PARTITION p202305 VALUES LESS THAN (202306), – 2023年5月
PARTITION p202306 VALUES LESS THAN (202307), – 2023年6月
PARTITION p202307 VALUES LESS THAN (202308), – 2023年7月
PARTITION p202308 VALUES LESS THAN (202309), – 2023年8月
PARTITION p202309 VALUES LESS THAN (202310), – 2023年9月
PARTITION p202310 VALUES LESS THAN (202311), – 2023年10月
PARTITION p202311 VALUES LESS THAN (202312), – 2023年11月
PARTITION p202312 VALUES LESS THAN (202401) – 2023年12月
);
查询数据:
SELECT * FROM orders WHERE order_date BETWEEN ‘2023-01-01’ AND ‘2023-01-31’;
增加新分区:
ALTER TABLE orders ADD PARTITION (
PARTITION p202401 VALUES LESS THAN (202402) – 2024年1月
);
删除旧分区:
ALTER TABLE orders DROP PARTITION p202301;
转载请注明作者和出处,并添加本页链接。
原文链接:
//pongpongkai.top/43