我有mysql表,其中包含超过50亿条包含两年数据的记录,其定义如下:
create table test_partition (
test_data VARCHAR(255),
create_date DATE
);
我们的大多数查询都针对特定的月份和年份,因此我们决定使用相同的分区数据
ALTER TABLE test_partition PARTITION BY HASH(YEAR(create_date) + MONTH(create_date)) PARTITIONS 12;
现在我想检索2018年10月的数据。以下查询正在工作
select * from test_partition PARTITION(p0);
,但是我想以编程方式找到该数据所在的分区,例如
select * from test_partition PARTITION(p + MOD(2018 + 10, 12));
Mysql版本: 5.6.10