Stiamo migrando un database da MySQL a MongoDB per motivi di prestazioni e considerando cosa utilizzare per gli ID dei documenti MongoDB. Stiamo discutendo tra l'uso di ObjectIDs, che è l'impostazione predefinita di MongoDB, o l'uso di UUID (che è quello che abbiamo usato fino ad ora in MySQL). Finora, gli argomenti che devono sostenere una di queste opzioni sono i seguenti:Utilizzo di UUID anziché ID oggetto in MongoDB
objectIds: objectIds sono il default MongoDB e presumo (anche se non sono sicuro) che questo è per una ragione, che significa mi aspetto che MongoDB possa gestirli in modo più efficiente degli UUID o ha un altro motivo per preferirli. Ho anche trovato this stackoverflow answer che menziona che l'uso di ObjectID rende l'indicizzazione più efficiente, sarebbe comunque bello avere alcune metriche su quanto questo "più efficiente" sia.
UUID: Il nostro argomento di base a favore di usare gli UUID (ed è un uno abbastanza importante) è che essi sono sostenuti, in un modo o nell'altro, praticamente da qualsiasi database. Ciò significa che se in qualche modo decidiamo di passare da MongoDB a qualcos'altro per qualsiasi motivo e abbiamo già un'API che recupera documenti dal DB in base ai loro ID, nulla cambia per i client di questa API poiché gli ID possono continuare essere esattamente lo stesso Se dovessimo usare ObjectIDs, non sono sicuro di come faremmo per migrarli su un altro DB.
Qualcuno ha qualche idea se una di queste opzioni potrebbe essere migliore dell'altro e perché? Hai mai usato UUID in MongoDB invece di ObjectID e se sì quali sono stati i vantaggi/i problemi che hai riscontrato?
Grazie, la verità è che non mi interessa davvero degli ID che contengono informazioni sulla data di creazione (l'ho già inserito in una colonna separata). Avete forse qualche intuizione sulle differenze di prestazioni tra i due? – Christina
Ciao Christina, in realtà c'è una foto interessante nel driver Java MongoDB che mostra il tempo di inserimento confrontato tra i valori ObjectId e UUID https://jira.mongodb.org/browse/JAVA-403. È affascinato sentir parlare dell'approccio che hai preso alla fine. –