Я ищу лучшие практики и идеи для управления данными в таблице базы данных во время массовой загрузки данных. Я думаю, что было бы проще начать с примера:
Предположим, что рассматриваемая таблица базы данных содержит следующие записи:
id | name | ...
1 | company A |
2 | company B |
3 | company C |
Затем я предпочитаю массово обновить эту таблицу новым файлом данных, который содержит информацию только для компаний A и C с пониманием, что компания B больше не является желаемой точкой данных.
Итак, мой вопрос заключается в следующем: я использую метод upsert
для управления точками данных, перечисленными в файле данных, но как эффективно удалить непредставленную точку данных из базы данных (например, компания B)? Следует ли отслеживать метки времени и удалять результаты старше, чем время начала загрузки? Или я должен просто сбросить всю таблицу и снова заполнить ее (за счет управления индексами)? У последнего есть недостаток, заключающийся в том, что таблица становится бесполезной во время загрузки, но у первого есть проблемы с параллелизмом и блокировкой. Мысли?