MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

limites du nombre de collections dans les bases de données

Cette réponse est tardive mais les autres réponses semblent un peu ... faibles en termes de fiabilité et d'informations factuelles, je vais donc essayer d'y remédier un peu.

Mais pour une raison quelconque, mongodb a défini une limite de 24 000 pour le nombre d'espaces de noms dans la base de données,

C'est simplement le paramètre par défaut. Oui, il existe un paramètre par défaut.

Il est dit sur la page des limites que 24000 est la limite ( http://docs.mongodb.org/manual/reference/limits/#Number%20of%20Namespaces ), comme s'il n'y avait aucun moyen d'étendre cela mais il y en a.

Cependant, il existe une limite maximale à la taille d'un fichier d'espace de noms ( http://docs.mongodb.org/manual/reference/limits/#Size%20of%20Namespace%20File ) qui est de 2 Go. Cela vous donne environ 3 millions d'espaces de noms avec lesquels jouer dans la plupart des cas, ce qui est assez impressionnant et je ne sais pas si beaucoup de gens atteindront cette limite rapidement.

Vous pouvez modifier la valeur par défaut pour aller au-delà de 16 Mo en utilisant le paramètre nssize soit dans la configuration ( http://docs.mongodb.org/manual/reference/configuration-options/#nssize ) soit au moment de l'exécution en manipulant la commande utilisée pour exécuter MongoDB ( http://docs.mongodb.org/manual/reference/mongod/#cmdoption-mongod--nssize ).

Il n'y a aucune raison réelle pour laquelle MongoDB implémente 16 Mo par défaut pour son nssize pour autant que je sache, je n'ai jamais entendu parler de la devise "ne pas déranger l'utilisateur avec chaque détail", donc je n'achète pas celui-là.

Je pense, à mon avis, que la principale raison pour laquelle MongoDB cache cela est parce que même si, comme l'indique la documentation :

Des collections distinctes sont très importantes pour le traitement par lots à haut débit.

L'utilisation de plusieurs collections comme moyen d'évoluer verticalement plutôt qu'horizontalement via un cluster, comme MongoDB est conçu pour cela, est considérée (assez souvent) comme une mauvaise pratique pour les sites Web à grande échelle ; en tant que telles, les collections 12K sont normalement considérées comme quelque chose que les gens ne vérifieront jamais et ne devraient jamais vérifier.