Хорошо, здесь много потенциальных проблем.
Я правильно индексирую базу данных MongoDB по ProductID, который я смотрю при обновлении.
Первое, что нужно отметить, - Mongo использует поле _id
для внутренних идентификаторов. Другими словами, Mongo автоматически имеет идентификатор автоинкремента (аналогично GUID, но меньше). Поле _id
автоматически получает индекс, поэтому если вы индексируете по ProductID
, у вас может быть два индекса, где необходим только один.
Если вы используете драйвер NoRM, обратите внимание на шаблоны использования для «создания собственных идентификаторов».
База данных в значительной степени меньше схемы со множеством вставок и обновлений по столбцам. Таблица примерно такая ... ProductID Part1 Part2 Part3
Эта концепция «частей» должна работать быстро и требовать меньшего пространства, чем SQL-сервер. Обратите внимание, что в каждом документе хранятся как имя поля, так и значение. Поэтому, если у вас есть имена полей p1
вместо Part1
, вы будете использовать меньше места и сможете хранить больше записей в оперативной памяти.
Пока что я не нашел существенного улучшения производительности с MongoDB ...
Здесь вы должны подробно рассказать о своих методологиях тестирования. Сколько документов. сколько общего места, сколько оперативной памяти на машине, как вы тестируете и т. д.
Без более подробной информации просто невозможно дать конкретное руководство.