mysql UUID () und java UUID.randomUUID ()

8

Ich frage mich, ob ich IDs, die mit der Funktion UUID () von mysql erzeugt werden, durch IDs ersetzen kann, die von der UUID.randomUUID () - Funktion von Java generiert wurden?

Ich möchte diese IDs in URLs mit meinen Benutzern teilen, aber die mysql UUID () - Ausgabe sieht nach einigen Durchläufen sehr ähnlich aus:

%Vor%

Ich sage nicht, dass sie nicht einzigartig sind, aber sehen die Ergebnisse von UUID () so aus? Ich nehme an, dass es an einen Identifikator auf meiner Maschine gebunden ist.

Javas UUID.randomUUID () "sieht" zufälliger aus:

%Vor%

Aus meinem naiven Verständnis der Einzigartigkeit sollten die von der Java-Methode generierten IDs als perfekter Ersatz für mysqls UUID () dienen?

(Ein weiterer Bonus für die Verwendung der Java-Version ist, dass ich einen eingefügten Datensatz, der UUID () verwendet, nicht erneut abrufen muss, wenn ich ihn in einer Antwort an einen Client bereitstellen muss)

Danke

    
user291701 26.01.2012, 06:28
quelle

1 Antwort

9

Verwenden Sie Linux oder FreeBSD? Aus der Dokumentation von mysql:

  

Die fünfte Nummer ist eine IEEE 802-Knotennummer, die räumliches liefert   Einzigartigkeit. Eine Zufallszahl wird ersetzt, wenn dies nicht der Fall ist   verfügbar (zum Beispiel, weil der Host-Computer kein Ethernet hat   Karte, oder wir wissen nicht, wie man die Hardwareadresse eines findet   Schnittstelle auf Ihrem Betriebssystem). In diesem Fall räumliche Eindeutigkeit   kann nicht garantiert werden. Trotzdem sollte eine Kollision sehr gering sein   Wahrscheinlichkeit.

     

Momentan wird nur die MAC-Adresse einer Schnittstelle berücksichtigt   unter FreeBSD und Linux. Auf anderen Betriebssystemen verwendet MySQL a   zufällig generierte 48-Bit-Nummer.

Beachten Sie auch:

  

Warnung :

     

Obwohl UUID () Werte eindeutig sein sollen, sind sie nicht   notwendigerweise unbegreiflich oder unvorhersehbar. Wenn Unvorhersehbarkeit ist   erforderlich, sollten UUID-Werte auf andere Weise generiert werden.

BEARBEITEN

Wenn Sie möchten, dass Benutzer-IDs scheinbar zufällig erscheinen, können Sie sie durch eine Hash-Funktion wie MD5(UUID()) übergeben, was eine überzeugendere zufällige Zeichenfolge

ergibt     
Dor Shemer 26.01.2012, 06:34
quelle

Tags und Links