powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Удалять, или архивировать?
10 сообщений из 10, страница 1 из 1
Удалять, или архивировать?
    #38446872
roman_lenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Лично для своей ситуации я этот вопрос уже решил, но просто интересно знать мнение профессионалов.

Скажем, есть база данных каких-то товаров: самая обычная БД, в которой каждая запись — это инфа о товаре. Если, например, некий товар утратил актуальность, как лучше поступить: удалить этот товар из базы данных (удалить запись), или отметить этот товар как "архивный" ? (это подразумевает, что у каждого товара есть поле "архивный" с вариантами значений: true|false).

Если запись товара удаляется , то, насколько я понимаю, уменьшается размер БД, системе нужно выполнять меньше операций сканирования/сравнения и.т.п. — это плюс. С другой стороны, насколько я знаю, возникают всяческие фрагментации индексов таблицы, что плохо сказывается на производительности — это правда? (ну, я уже просто не говорю о том, что страницы веб-сайта для конкретного товара начинают отдавать код HTTP 404 и это не нравится сеошниками и поисковикам).

Если запись товара "архивировать" , то размер БД будет всё увеличиваться и увеличиваться, и увеличиваться; операций сканирования/сравнения нужно будет проводить всё больше и больше, и больше (т.е., эти операции будут занимать больше времени, понятно, что мы говорим о миллисекундах времени, но масштабы и нагрузки БД бывают разными). Т.е., скажем так, если записи не удалять, то через пару лет можно получить нехилую кучу записей, которые просто-напросто являются "мусором" (с другой стороны, сеошники и поисковые системы кайфуют — количество страниц на сайте не уменьшается).

В общем, кто как решает подобную проблему?

Спасибо!
...
Рейтинг: 0 / 0
Удалять, или архивировать?
    #38446926
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совсем удалять вряд ли возможно, т.к. оборвутся ссылки на этот товар. Ведь он же участвует в документах, заказах и т.п.
Никакой особенной нагрузки это не дает, т.к. все равно поиск происходит по индексу. Поиска, требующего полного сканирования таблицы не должно быть.

Иногда такой товар переносят в архивную таблицу, но это требует немалых изменений в программном коде.

roman_lenkoстраницы веб-сайта для конкретного товара начинают отдавать код HTTP 404 и это не нравится сеошниками и поисковикамЭто как раз нормально. Намного хуже, когда код остается 200 со словами "у нас такого товара нет".
Как вариант, можно сделать 301-ый редирект на страницу аналогичного товара или на страницу его товарной группы в каталоге товаров.
...
Рейтинг: 0 / 0
Удалять, или архивировать?
    #38446933
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roman_lenkoразмер БД будет всё увеличиваться и увеличиваться, и увеличиваться;
операций сканирования/сравнения нужно будет проводить всё больше и больше, и больше

Нет, эти два утверждения никак не связаны между собой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Удалять, или архивировать?
    #38446939
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Был большой срач на эту тему. Если кратко - большинство сошлось на том, что удалять товары не надо.
...
Рейтинг: 0 / 0
Удалять, или архивировать?
    #38446945
roman_lenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftПоиска, требующего полного сканирования таблицы не должно быть.

То есть? Вот, например, элементарнейший запрос:

Код: sql
1.
select * from Товары where id = 55;



Разве это не полное сканирование таблица по индексу id?
...
Рейтинг: 0 / 0
Удалять, или архивировать?
    #38446959
А что такое "сканирование" в вашем представлении?
...
Рейтинг: 0 / 0
Удалять, или архивировать?
    #38446974
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> кто как решает подобную проблему?

Нет такой проблемы, Рома. Постановка задачи определяет абсолютно все технические нюансы. Если вы хотите помойку цен типа яндекс-маркета, то, конечно, нет смысла хранить данные о продуктах, производство которых прекращено двадцать лет назад. Но если вам нужны исследования рынка, то вы будете вынуждены хранить данные обо все экземплярах модельного ряда с учётом фазы жизненного цикла.
...
Рейтинг: 0 / 0
Удалять, или архивировать?
    #38446983
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roman_lenkoТо есть? Вот, например, элементарнейший запрос:
Код: sql
1.
select * from Товары where id = 55;

Разве это не полное сканирование таблица по индексу id?Нет, конечно. Тут никакого "полного сканирования" нет.
...
Рейтинг: 0 / 0
Удалять, или архивировать?
    #38446986
Гость333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roman_lenko
Код: sql
1.
select * from Товары where id = 55;



Разве это не полное сканирование таблица по индексу id?
Нет, конечно. Это поиск по индексу. На больших таблицах поиск осуществляется на несколько порядков быстрее, чем полное сканирование.
...
Рейтинг: 0 / 0
Удалять, или архивировать?
    #38447144
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
roman_lenkoВ общем, кто как решает подобную проблему?

Помечать как скрытый
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Удалять, или архивировать?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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