Недавно я замечаю огромную разницу в производительности между выполнением нескольких upserts (посредством массовых операций) и вставкой (несколько документов). Я хотел бы знать, правильно ли я по этому поводу:
- Upsert/Updates будут похожи на
find()
иupdate()
так что 2 чтения и записи - Вставка просто напишет, так что намного быстрее
Таким образом, разница в производительности?
Если это так, мне интересно, нужно ли много писать регулярно, вместо того, чтобы обновлять документ, я пишу новый документ с полем createdOn
. Затем, чтобы запросить, я просто createdOn DESC
документы, отсортированные по createdOn DESC
. Интересно, хороший ли это метод? Или есть лучший способ?
- Я действительно задаюсь вопросом, есть ли у меня индекс в коллекции, возможно, это ускорит обновление? Но не будет ли этот индекс замедлять часть записи?
- Со вторым способом, где я только вставляю, будет ли он замедляться, тогда у меня слишком много документов? Это практично (ускорить запись)?
- Я также попытался увеличить размер пула соединений. Не уверен, что оптимальный, но я пробовал 20, и я вижу, что могу обрабатывать 20 запросов в секунду через mongostat. Я ожидал, что это будет намного выше.