Подтвердить что ты не робот

MongoDB: Компромиссы с отказом от сбора и удаления всех его документов

Каковы компромиссы сбрасывания коллекции MongoDB или удаление всех ее документов (при условии, что коллекция будет воссоздана сразу)?

4b9b3361

Ответ 1

Если вы удалите все документы из коллекции, вы будете делать гораздо больше работы (освобождение хранилища документов, очистка записей индекса, указывающих на документ, и т.д.). Если вместо этого вы просто отбросите коллекцию, это будет просто исправление экстентов, которые использует коллекция и ее индексы.

Еще одно отличие заключается в том, что удаление коллекции также приведет к удалению индексов коллекции.

Ответ 2

Преимущество простого удаления коллекции заключается в том, что она намного быстрее, чем удаление всех документов коллекции. Если ваша коллекция будет "воссоздана немедленно" в любом случае (при условии, что она включает воссоздание индекса), то это, вероятно, самый привлекательный вариант.

Авторы книги MongoDB: The Definitive Guide (Кристина Чодоров и Майкл Дирольф) провели эксперимент, в котором они предоставили Python script который приурочил a drop против a remove из 1000000 записей. Результаты пришли в 0,01 секунды для drop и 46.08 секунд для remove. Теперь, когда точное время может отличаться в зависимости от оборудования и других факторов, оно тем не менее иллюстрирует то, что drop значительно быстрее.

ссылка: Chodorow K., Dirolf M. (2010). "MongoDB: окончательное руководство". O'Reilly Media, Inc. Sebastapol, CA., pp.25

Ответ 3

Удаление и удаление коллекции - это главным образом детализация реализации.

Удаление для коллекции требуется одно за другим обновление внутреннего состояния, которое существует в коллекции.

Удаление для коллекции требуется освобождение некоторых больших структур данных внутри базы данных файлов данных.

Отбрасывание коллекции намного быстрее, чем удаление по одному, пока коллекция не будет пустой.

Метаданные, как индексы, будут существовать, если коллекция будет удалена, а не когда она будет удалена.

Источник: Университетский курс MongDB