sql >> Base de Datos >  >> NoSQL >> MongoDB

Mongodb:debe _id ser globalmente único al fragmentar

A menos que los reemplace manualmente, los _id generados automáticamente son UUID que, de acuerdo con la documentación , consta de "una marca de tiempo de 4 bytes (segundos desde la época), una identificación de máquina de 3 bytes, una identificación de proceso de 2 bytes y un contador de 3 bytes".

Como puede ver, una ID de máquina única es parte del UUID. Eso garantiza que nunca dos máquinas en el fragmento creen el mismo UUID de forma independiente (a menos que tengan la misma identificación de máquina; la probabilidad de que eso suceda es 1:16777215 y cuando sucede, se puede verificar fácilmente). La única situación en la que teóricamente podría tener un UUID duplicado es cuando un solo proceso crea más de 2^24 (más de 16 millones) UUID en un solo segundo.

tl;dr: No tiene que preocuparse por los UUID duplicados:están, como dice la documentación, "diseñados para tener una probabilidad razonablemente alta de ser únicos cuando se asignan".