Sto usando System.currentTimeMillis()
(che restituisce un numero intero long
) in Java per generare un ID univoco per le entità del database poiché presumo che non sia possibile che queste volte si sovrappongano in qualsiasi punto.È sicuro utilizzare System.currentTimeMillis() per generare un ID di database univoco?
È un presupposto sicuro?
Per esempio, in questo momento ottengo questo:
1296691225227
In termini di probabilità di guasto, dubito l'approccio millisecondi sarebbe sopravvissuto unit testing. – Dolph
@Dolph - o test di carico del sistema. Certamente non dovrebbe ... se le stai facendo correttamente. –
Mi piace molto UUID ma è piuttosto inefficiente (inteso nel modo più duro ...) il modo usuale di memorizzare è UUID.toString() che è lungo 36 byte (solitamente mappato a qualcosa come varchar (36)). Gli indici DB dovrebbero essere tenuti in memoria - più grande è l'indice, più memoria è necessaria, anche l'indicizzazione si rallenta, ecc. Suggerirei di usare alcuni schemi high-low con bit di cluster e 'long' id. – bestsss