Является ли удаление дорогой операции в MongoDB? - PullRequest
6 голосов
/ 22 мая 2011

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

Есть идеи?

1 Ответ

13 голосов
/ 22 мая 2011

тл; др: удалить.

MongoDB сохраняет данные в двойном связанном списке, поэтому для удаления результатов корректируются две ссылки: следующая ссылка предыдущего документа и предыдущая ссылка следующего документа. Автокомпактирования нет. Обновление, если у вас уже есть сохраненное значение, происходит на месте, меняя одно значение. Теперь ... вы думаете, отлично, обновите один int вместо двух указателей, конечно, быстрее! Не так - теперь вам нужно индексировать этот флаг, и создание индексов происходит «медленно».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...