sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongodb - skal _id være globalt unik ved sharding

Medmindre du udskifter dem manuelt, er de automatisk genererede _id'er UUID'er, som ifølge dokumentationen , består af "et 4-byte tidsstempel (sekunder siden epoke), et 3-byte maskin-id, et 2-byte proces-id og en 3-byte tæller".

Som du kan se, er et unikt maskin-ID en del af UUID. Det sikrer, at ikke to maskiner i shard nogensinde opretter det samme UUID uafhængigt (medmindre de har det samme maskin-id - sandsynligheden for det er 1:16777215, og når det sker, kan det nemt verificeres). Den eneste situation, hvor du teoretisk set kunne have et duplikeret UUID, er når en enkelt proces skaber mere end 2^24 (over 16 millioner) UUID'er på et enkelt sekund.

tl;dr: Du behøver ikke bekymre dig om duplikerede UUID'er - de er, som dokumentationen udtrykker det, "designet til at have en rimelig høj sandsynlighed for at være unikke, når de tildeles".




  1. MongoDB $nin Query Operator

  2. Sådan indstilles hash-nøgleudløb i redis i henhold til eksistensen af ​​nøglen

  3. Hvordan konverteres mange-til-mange relationsform SQL til mongoDB-indsamling?

  4. MongoConnectionException - Kunne ikke oprette forbindelse til:localhost:27017