Автор: DB_tuner Открыта для предложений Шагов: 4

Партиционирование: удаление 30 ГБ за 0.1 сек

🎯 Применение в проектах

0
участников
0
проектов
4
шагов

Кратко

DELETE миллионов строк блокирует таблицу на часы.

Контекст

DELETE миллионов строк блокирует таблицу на часы.

Результат

Удаление 30 ГБ мгновенно, без блокировок.

Шаги

1

Проблема

Автор: DB_tuner
Таблица logs растёт на 1 ГБ в день. DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY блокирует таблицу на часы.
2

Решение

Автор: DB_tuner
PARTITION BY RANGE (TO_DAYS(created_at)). Каждая неделя — отдельная партиция.
3

Удаление

Автор: DB_tuner
ALTER TABLE logs DROP PARTITION p20260301. Мгновенно, без блокировок, без записи в binlog каждой строки.
4

Автоматизация

Автор: DB_tuner
Еженедельный скрипт: создать новую партицию на следующую неделю, удалить самую старую.

Предложить шаг

Ваше улучшение будет отправлено владельцу инструкции на одобрение.

Совет: если инструкция получается очень большой — более 10–15 шагов, имеет смысл собрать ее в полноценный курс на online.tfeya.ru. Там можно разбить материал по модулям, добавить тесты и отслеживать прогресс участников.