mysql数据库,按照时间分区

分区优点:

1. 可以按照group by对分区进行并行查询。
2. 数据归档方便,不同的分区为不同的数据库文件。
3. 跨磁盘存储数据。

缺点:

  1. 分区数量 5.1前为 1024个,以后为1024*8
  2. 分区键必须为主键,可以是联合主键
  3. 分区为水平分区,底层为单独的数据表。

注意

分区字段需要是key,设置和自增主键的联合主键。 或单独增加字段作为分区键

CREATE TABLE t_user (
	id INT ( 8 ) NOT NULL AUTO_INCREMENT,
	`username` VARCHAR ( 255 ) NOT NULL,
	`address` VARCHAR ( 255 ) NOT NULL,
	`tel` VARCHAR ( 255 ) NOT NULL,
	birtyday TIMESTAMP NOT NULL,
	PRIMARY KEY ( id, birtyday ) 
	) ENGINE = INNODB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8 PARTITION BY RANGE (
	UNIX_TIMESTAMP( birtyday )) PARTITIONS 4
	(
	PARTITION p0
	VALUES
		LESS THAN (
		UNIX_TIMESTAMP( '2001-09-11' )),
		PARTITION p1
	VALUES
		LESS THAN (
		UNIX_TIMESTAMP( '2011-09-11' )),
		PARTITION p2
	VALUES
		LESS THAN (
		UNIX_TIMESTAMP( '2021-09-11' )),
		PARTITION p19
	VALUES
	LESS THAN MAXVALUE 
	);

新增分区

alter TABLE `t_user` add PARTITION(
 PARTITION p20180629 VALUES LESS THAN (20180630) ENGINE = InnoDB
);

删除分区

alter table `test1`  drop PARTITION p20180629;

查询分区

SELECT * from t_user PARTITION (p1)

扫描分区,判断如何使用

explain partitions select * from t_user;

你可能感兴趣的:(mysql,mysql)