tidb 分区语句
时间: 2023-07-01 14:16:46 浏览: 66
TiDB 支持不同的分区方式,因此创建分区表的语句也会有所不同。以下是几种常见的分区表创建语句示例:
1. 按照范围分区
```sql
CREATE TABLE table_name (
id INT NOT NULL,
date DATE NOT NULL,
value INT,
PRIMARY KEY (id, date)
) PARTITION BY RANGE (YEAR(date)) (
PARTITION p0 VALUES LESS THAN (2020),
PARTITION p1 VALUES LESS THAN (2021),
PARTITION p2 VALUES LESS THAN (2022)
);
```
上述示例中,按照日期范围进行分区,分成了三个分区,分别存储 2020 年及以前、2021 年、2022 年及以后的数据。
2. 按照哈希分区
```sql
CREATE TABLE table_name (
id INT NOT NULL,
name VARCHAR(30),
PRIMARY KEY (id)
) PARTITION BY HASH (id) PARTITIONS 4;
```
上述示例中,按照 id 列的哈希值进行分区,分成了 4 个分区。
3. 按照列表分区
```sql
CREATE TABLE table_name (
id INT NOT NULL,
gender ENUM('M', 'F'),
name VARCHAR(30),
PRIMARY KEY (id)
) PARTITION BY LIST (gender) (
PARTITION p0 VALUES IN ('M'),
PARTITION p1 VALUES IN ('F')
);
```
上述示例中,按照 gender 列的值进行分区,分成了两个分区,分别存储男性和女性的数据。