Как называется процесс периодической очистки базы данных от устаревших записей для оптимизации производительности?

Ответ

Этот процесс называется Data Purging (очистка данных).

Цель:
Удаление устаревших или более неактуальных данных из рабочих таблиц для уменьшения размера базы данных, ускорения выполнения запросов (SELECT, UPDATE) и упрощения обслуживания.

Реализация:
Обычно Data Purging автоматизируется и выполняется периодически (например, раз в сутки с помощью cron-задачи), удаляя записи, которые старше определенного порога (например, логи старше 90 дней).

Пример на Go с использованием GORM:

// purgeOldLogs удаляет записи логов старше 90 дней
func purgeOldLogs(db *gorm.DB) error {
    ninetyDaysAgo := time.Now().AddDate(0, 0, -90)

    // Выполняем DELETE ... WHERE created_at < ...
    result := db.Where("created_at < ?", ninetyDaysAgo).Delete(&LogEntry{})
    if result.Error != nil {
        return result.Error
    }

    log.Printf("Purged %d old log entries", result.RowsAffected)
    return nil
}

Альтернативные подходы:

  • Архивирование (Archiving): Вместо полного удаления, данные переносятся в отдельное, более медленное и дешевое хранилище (другая таблица, база данных или файловый архив). Это позволяет сохранить данные для анализа или на случай аудита.
  • Партиционирование (Partitioning): Таблица разбивается на части (партиции) по определенному ключу, часто по дате. Удаление старых данных сводится к быстрому удалению целой партиции (DROP PARTITION), что гораздо эффективнее, чем DELETE для миллионов записей.