Wir migrieren aus Leistungsgründen eine Datenbank von MySQL nach MongoDB und überlegen, was für IDs der MongoDB-Dokumente verwendet werden soll. Wir diskutieren zwischen der Verwendung von ObjectIDs, der MongoDB-Standardeinstellung, oder der Verwendung von UUIDs (die wir bisher in MySQL verwendet haben). Bisher müssen wir folgende Argumente unterstützen, um diese Optionen zu unterstützen:
ObjectIDs: ObjectIDs sind die MongoDB-Standardeinstellungen, und ich gehe davon aus (obwohl ich nicht sicher bin), dass dies einen Grund hat, was bedeutet, dass ich davon ausgehe, dass MongoDB sie effizienter handhaben kann als UUIDs oder einen anderen Grund hat, sie zu bevorzugen. Ich fand auch diese Stackoverflow-Antwort , in der erwähnt wird, dass die Verwendung von ObjectIDs die Indizierung effizienter macht. Es wäre jedoch schön, einige Metriken darüber zu haben, wie viel diese "effizientere" ist.
UUIDs: Unser grundlegendes Argument für die Verwendung von UUIDs (und es ist sehr wichtig) ist, dass sie auf die eine oder andere Weise von praktisch jeder Datenbank unterstützt werden. Dies bedeutet, dass wir uns für die Clients dieser API nicht ändern, wenn wir uns aus irgendeinem Grund dazu entschließen, von MongoDB zu etwas anderem zu wechseln, und dass wir bereits eine API haben, die Dokumente basierend auf ihren IDs aus der Datenbank abruft, da die IDs fortgesetzt werden können genau das gleiche sein. Wenn wir ObjectIDs verwenden würden, wäre ich mir nicht sicher, wie wir sie in eine andere Datenbank migrieren würden.
Hat jemand einen Einblick, ob eine dieser Optionen besser ist als die andere und warum? Haben Sie jemals UUIDs in MongoDB anstelle von ObjectIDs verwendet und wenn ja, auf welche Vorteile / Probleme sind Sie gestoßen?