Mangouste insertMany limite
Mangouste 4.4 a maintenant un insertMany
fonction qui permet de valider une série de documents et de les insérer si valide le tout avec une seule opération, plutôt que pour chaque document:
var arr = [{ name: 'Star Wars' }, { name: 'The Empire Strikes Back' }];
Movies.insertMany(arr, function(error, docs) {});
Si j'ai un très grand tableau, il faut que j'lot? Ou n'est-il pas de limite sur la taille ou un tableau?
Par exemple, je veux créer un nouveau document pour chaque Film, et j'ai de 10 000 films.
OriginalL'auteur lifwanian | 2016-03-16
Vous devez vous connecter pour publier un commentaire.
Je le recommande basée sur l'expérience personnelle, lot de 100 à 200 vous donne un bon mélange de performance, sans mettre de pression sur votre système.
insertMany groupe d'opérations peut avoir au plus 1 000 opérations. Si un groupe dépasse cette limite, MongoDB diviser le groupe en petits groupes de 1000 ou moins. Par exemple, si la file d'attente se compose de 2000 opérations, MongoDB crée 2 groupes, chacun avec plus de 1000 opérations.
Les tailles et de regroupement mécanique interne de la performance de détails et sont susceptibles de changer dans les futures versions.
De l'exécution d'une liste ordonnée d'opérations sur une fragmenté collection sera généralement plus lent que l'exécution d'une liste non ordonnée depuis avec une liste ordonnée, chaque opération doit attendre pour l'opération précédente à la fin.
OriginalL'auteur Saleem
La méthode prend ce tableau et commence à les insérer à travers le insertMany méthode dans MongoDB , de sorte que la taille de la matrice elle-même dépend en réalité de la façon dont beaucoup de votre la machine peut traiter .
Mais s'il vous plaît noter qu'il ya un autre point, qui n'est pas une limitation, mais quelque chose de la peine de garder en considération, sur la façon MongoDB traite de multiples opérations, par défaut, il gère un lot de 1000 opérations à un moment et se divise quoi de plus que cela.
OriginalL'auteur Rabea
Mongo 3.6 mise à jour:
La limite pour
insertMany()
a augmenté de Mongo 3.6 de1000
à100,000
.Ce qui signifie que désormais, les groupes ci-dessus
100,000
opérations seront divisés en petits groupes en conséquence.Par exemple: une file d'attente qui a
200,000
opérations seront divisés et Mongo permettra de créer 2 groupes de100,000
chaque.je n'ai jamais dit que ce serait plus rapide 🙂 jamais moins - que peut dépendre du type de votre machine(la quantité de RAM, disque écrit etc...). Êtes-vous d'envoyer les données vers un autre serveur à l'aide de
async/await
? qui peut le rendre plus lent.Ahh.. semble que j'ai oublié de coller l'URL du dépôt Github, c'est ici: github.com/ashokdey/scale Vous pouvez connaître les cas d'utilisation dans le fichier lisez-moi et je serais heureux de vous voir comme un collaborateur. Pour mon cas d'utilisation, il a été plus rapide par rapport à 50k insérer à un moment.
OriginalL'auteur FireBrand