Задать вопрос
@mihalich4040

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

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

Но так получается, что база будет постоянно расти и теоретически нагрузка будет увеличиваться, а производительность уменьшаться. Удаленные записи уже никак не будет использоваться. Только иногда просмотреть. Что то вроде системы логов.
  • Вопрос задан
  • 504 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽