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 数据库按月分区管理实践,如果能够科学构建分区表,可以大大提高数据库的管理工作效率。


数据运维技术 » Mysql数据库按月分区管理实践(mysql按月分区)