У меня есть таблица mysql, содержащая более 5 миллиардов записей, содержащих данные за два года, с определением типа:
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. Следующий запрос работает
select * from test_partition PARTITION(p0);
, но я хочу программно найти раздел, в котором находятся эти данные, что-то вроде
select * from test_partition PARTITION(p + MOD(2018 + 10, 12));
Mysql Версия: 5.6.10