@mihalich4040

Где хранить данные удаленных записей в базе?

Подскажите, пожалуйста, есть база на 500тыс записей. В сутки примерно 1тыс удаляется, 1тыс добавляется. Сейчас старые данные просто удаляются, но появилась необходимость просматривать то что было удаленно. Поэтому думаю лучше копировать запись из основой базы в отдельную "базу для удаленных" и удалять из основной (1) или ставить статус deleted = 1 в основной базе и оставлять (2).

Но так получается, что база будет постоянно расти и теоретически нагрузка будет увеличиваться, а производительность уменьшаться. Удаленные записи уже никак не будет использоваться. Только иногда просмотреть. Что то вроде системы логов.
  • Вопрос задан
  • 452 просмотра
Решения вопроса 1
alex-saratov
@alex-saratov
Лучше добавить в таблицы поле deleted и написать отдельную процедуру отображения удаленных.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
vahe_2000
@vahe_2000
есть подобный вопрос СМОТРИТЕ И ЗДЕСЬ.
-------------------------------------------------------
Как правильнее поступать с ненужными записями в БД...
Ответ написан
Комментировать
martin74ua
@martin74ua Куратор тега MySQL
Linux administrator
базы - они всегда растут ;)
Лучше - отметка. Это вам сейчас они не нужны. А вот послезавтра вдруг резко понадобится какую то аналитику сделать....
Ответ написан
Комментировать
idelg
@idelg
Разработчик
При удалении объекта в колонку deleted_at записывается время удаления и в модели везде проставляются фильтры, чтобы не выводить удаленные объекты. Для получения удаленных объектов лучше создать отдельный скоуп.

Мне нравится, как это реализовано в Ларавеле, можете глянуть детали в документации.

Что касается MySQL, то есть возможность восстановления недавно удаленных объектов из логов:
mysqlbinlog binary_log_file > query_log.sql
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы