Mysql数据库按月分区管理实践(mysql按月分区)
MySQL 数据库按月分区管理实践
MySQL 是流行的关系型数据库之一,用按月分区的方式可以非常有利的管理数据。按照月份进行分区的目的是为了更好的满足碎片数据的管理需求,提高 SQL 的执行效率,以及减少服务器的磁盘空间占用。
要按月分区,需要运用 MySQL 提供的分区表功能,创建分区表完整步骤如下:
1.创建分区表并指定其类型:
CREATE TABLE tab_part (id INT NOT NULL PRIMARY KEY, content CHAR(10))
PARTITION BY RANGE(MONTH(create_date)) ( PARTITION p0 VALUES LESS THAN (1),
PARTITION p1 VALUES LESS THAN (2), ...
PARTITION p11 VALUES LESS THAN (12) );
2.定义表结构:
ALTER TABLE tab_part ADD COLUMN (
create_date date, ...
);
3.为每个分区创建表:
CREATE TABLE tab_part_0 LIKE tab_part;
ALTER TABLE tab_part_0 ADD PARTITION (PARTITION p0 VALUES LESS THAN (1));CREATE TABLE tab_part_1 LIKE tab_part;
ALTER TABLE tab_part_1 ADD PARTITION (PARTITION p1 VALUES LESS THAN (2)); ...
CREATE TABLE tab_part_11 LIKE tab_part; ALTER TABLE tab_part_11 ADD PARTITION (PARTITION p11 VALUES LESS THAN (12));
4.为每个分区设置存储引擎:
ALTER TABLE tab_part_0 ENGINE = InnoDB;
ALTER TABLE tab_part_1 ENGINE = InnoDB; ...
ALTER TABLE tab_part_11 ENGINE = InnoDB;
5.设置分区溢出范围:
ALTER TABLE tab_part
MODIFY PARTITION p0 VALUES LESS THAN (2) Tablespace ts_0;
ALTER TABLE tab_part MODIFY PARTITION p1 VALUES LESS THAN (3)
Tablespace ts_1;
6.增加月分区数据:
INSERT
INTO tab_part (id, content, create_date)
VALUES (1, ‘hello’, '2018-07-31');
通过以上步骤,按月分区的 MySQL 数据库完整的创建完毕,后续可以方便地进行存储、分析、查询等操作。
以上就是 MySQL 数据库按月分区管理实践,如果能够科学构建分区表,可以大大提高数据库的管理工作效率。