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

Mongodb - doit _id être globalement unique lors du partitionnement

À moins que vous ne les remplaciez manuellement, les _id générés automatiquement sont des UUID qui, selon la documentation , consistent en "un horodatage de 4 octets (secondes depuis l'époque), un identifiant de machine de 3 octets, un identifiant de processus de 2 octets et un compteur de 3 octets".

Comme vous pouvez le voir, un ID de machine unique fait partie de l'UUID. Cela garantit que deux machines de la partition ne créent jamais le même UUID indépendamment (à moins qu'elles n'aient le même identifiant de machine - la probabilité est de 1:16777215 et lorsque cela se produit, cela peut être facilement vérifié). La seule situation où vous pourriez théoriquement avoir un UUID dupliqué est lorsqu'un seul processus crée plus de 2^24 (plus de 16 millions) UUID en une seule seconde.

tl;dr : Vous n'avez pas à vous soucier des UUID en double - ils sont, comme le dit la documentation, "conçus pour avoir une probabilité raisonnablement élevée d'être uniques lorsqu'ils sont attribués".