TDsql,二级分区表,按月分区相关问题

a 8-31 10:41:49
请问下关于TDSQL的问题。

TDSQL想要按照月进行二级分区,即每个月一个分区。以下语句是否可以?
shardkey=cluster_id PARTITION BY RANGE (month(insert_time)) (PARTITION p0 VALUES LESS THAN (202102), PARTITION p1 VALUES LESS THAN (202103), PARTITION p2 VALUES LESS THAN (202104))

按照目前的理解,感觉有个困惑,所以想请教下。LESS THAN 中的 202102 与 month(insert_time)的结果(1-12区间的整数)是如何比较大小,还是 202102其实是 month(202102)再与 month(insert_time)比较?

helper 8-31 10:43:54
CREATE TABLE `employees_hash_range` (
`id`int NOT NULL,
`city` varchar(10),
`fired` DATE NOT NULL DEFAULT '1970.01.01',
PRIMARY KEY(id)
) shardkey=id
PARTITION BY RANGE (month(fired)) (
PARTITION p0 VALUES LESS THAN (202106),
PARTITION p1 VALUES LESS THAN (202107)
);
参考下

a 8-31 10:44:35
这个我看过,所以,这里有个困惑。202106这个总是大于month(fired)

a 8-31 10:45:19
因为 month(fired)总是在1-12之间,然后不是总小于 202106?

helper 8-31 10:45:38
底层代码是这样写的

helper 8-31 10:45:43
你可以测试一下

helper 8-31 10:45:58
不用担心

a 8-31 10:46:35
所以,是会 month(202106)与 month(fired)对比?

a 8-31 10:47:31
只需要写2个 VALUES LESS THAN ,后续会自增?

helper 8-31 10:47:58
会自增

a 8-31 10:48:43
那我先试试~

a 8-31 10:48:47
多谢

posted on 2021-09-04 08:43  千方百计  阅读(621)  评论(0编辑  收藏  举报

导航