PARTITION для готовой базы данных?



@tzn

прошу прощение за столько тупой вопрос, и возможно для кого-то очевидный, но все же…
Сейчас изучаю PARTITION для mysql бд, и столкнулся с проблемой — у меня есть готовая база данных, в которой уже довольно таки много данных. Хочу сделать парционирование по дате, но мне постоянно выдает ошибки по типу

A PRIMARY KEY must include all columns in the table's partitioning function

Partition column values of incorrect type

и тд.

Гуглом умею пользоваться, но нигде нет примеров партиционирования для готовой таблицы. На зрел вопрос — это вообще реально? если да, что я делаю не так. Спасибо.

вот все мои попытки:

ALTER TABLE leads  PARTITION BY RANGE COLUMNS (date) (
    PARTITION p1 VALUES LESS THAN ('2021-08-01')

);
ALTER TABLE leads  PARTITION BY RANGE (Month (date))
    (
    PARTITION p_1 VALUES LESS THAN (TO_DAYS('2021-05-01')),
    PARTITION p_2 VALUES LESS THAN MAXVALUE );
ALTER TABLE leads  PARTITION BY RANGE (Month (date))
    (
    PARTITION p_1 VALUES LESS THAN (TO_DAYS('2021-05-01')),
    PARTITION p_2 VALUES LESS THAN MAXVALUE );
ALTER TABLE leads  PARTITION BY RANGE (Month (date))
    (
    PARTITION p_Apr VALUES LESS THAN (TO_DAYS('2021-05-01'))
    );


Решения вопроса 0


Ответы на вопрос 1



@sarapinit

Хочу сделать парционирование по дате, но мне постоянно выдает ошибки по типу
A PRIMARY KEY must include all columns in the table’s partitioning function

Вам в этой ошибке объясняют что не так, непонятно почему вы продолжаете игнорировать ее.
Если вы хотите сделать партицивание по колонке date, то она должна быть частью первичного ключа. То есть нужно соответствующим образом пересоздать первичный ключ, а затем делать партиции

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *