mysql 分区表
时间: 2023-06-28 14:08:14 浏览: 133
MySQL 分区表是将一张大表分成多个小表存储的一种技术。这样做可以提高查询效率,减少磁盘 I/O 等问题。
MySQL 支持以下几种分区方式:
1. RANGE 分区:按照指定的列范围将数据行分配到不同的分区中,例如按照时间范围分区。
2. LIST 分区:按照指定的列值列表将数据行分配到不同的分区中,例如按照地区分区。
3. HASH 分区:根据用户指定的表达式计算出每行数据的哈希值,将数据行分配到不同的分区中。
4. KEY 分区:类似于 HASH 分区,但是只支持对单个列进行哈希计算。
下面是一个 RANGE 分区的示例:
```
CREATE TABLE mytable (
id INT NOT NULL,
created_time DATETIME NOT NULL,
data VARCHAR(200),
PRIMARY KEY (id, created_time)
) ENGINE=InnoDB
PARTITION BY RANGE( YEAR(created_time) ) (
PARTITION p0 VALUES LESS THAN (2010),
PARTITION p1 VALUES LESS THAN (2015),
PARTITION p2 VALUES LESS THAN MAXVALUE
);
```
以上语句创建了一个名为 mytable 的分区表,按照 created_time 列的年份进行分区,分成三个分区,分别是 2010 年之前、2010 年到 2014 年和 2015 年之后。
阅读全文