Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Научите правильно удалять партиции с устаревшими данными. / 2 сообщений из 2, страница 1 из 1
28.02.2020, 12:00
    #39932113
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Научите правильно удалять партиции с устаревшими данными.
Всем привет, есть таблица с партициями по рэнжу поле timestamp.

Этим запросом я вижу партиции с рэнжом старше 30 дней.
Код: sql
1.
explain partitions select * from zabbix.history where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 day));



Пробовал записать в переменную значение поля partitions , где перечислены имена партиций с устаревшими данными, но интуитивный вариант результата не дает:
Код: sql
1.
explain partitions select @i := partitions  from

.

Подскажите алгоритм, с T-SQL работал много, но с возможностями MySQL никогда не сталкивался.
...
Рейтинг: 0 / 0
28.02.2020, 14:28
    #39932168
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Научите правильно удалять партиции с устаревшими данными.
Пишите хранимую процедуру - запрос тут не сработает.

Получаете список партиций (только используйте SELECT .. FROM INFORMATION_SCHEMA.PARTITIONS) в переменную через запятую (GROUP_CONCAT), добавляете в начало ALTER TABLE .. DROP PARTITION, и выполняете через PREPARED STATEMENT.

Т.е. навскидку (не проверял) как-то так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE PROCEDURE drop_old_partition ()
BEGIN
SELECT CONCAT('ALTER TABLE zabbix.history DROP PARTITION ',
                         GROUP_CONCAT(PARTITION_NAME))
    INTO @sql
    FROM INFORMATION_SCHEMA.PARTITIONS
    WHERE TABLE_SCHEMA = 'zabbix'
      AND TABLE_NAME = 'history'
      AND (условие проверки диапазона дат партиции по её PARTITION_NAME или PARTITION_EXPRESSION);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DROP PREPARE stmt;
END


Да, DROP PARTITION - это грохнуть её вместе со всеми данными...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Научите правильно удалять партиции с устаревшими данными. / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]