Wie kann die in Java generierte UUID effizient in Oracle DB gespeichert werden? Wird das Entfernen oder Entfernen von Bindestrichen in der UUID verwendet?

8

Was ist der effiziente Weg, UUID in Java in Oracle DB zu speichern? Wird das Entfernen oder Entfernen eines Bindestrichs in der UUID verwendet - Speicherung / Leistung?

Wird gespeichert

07b319dc-7e64-4047-a3e3-63ab43864d81 wie es ist
ODER Speichern von 07b319dc-7e64-4047-a3e3-63ab43864d81 als 07b319dc7e644047a3e363ab43864d81

macht einen Unterschied?

    
ashish p 28.11.2012, 16:57
quelle

1 Antwort

9

Durch das Entfernen der Bindestriche sparen Sie genau 4 Zeichen pro Zeile in der Datenbank, was sich nicht wirklich lohnt. Oracle wird aufgrund dieser vier Zeichen nicht wesentlich langsamer oder schneller sein. Noch schlimmer, wenn Sie den Wert zurück in Ihre Java-Anwendung auswählen und ein Objekt java.util.UUID neu erstellen möchten, müssen Sie die Bindestriche an der richtigen Stelle erneut einfügen.

Wenn Sie etwas Speicherplatz in der Datenbank speichern möchten, hätte RAW(16) (wie vcsjones im Kommentar zu Ihrer Frage genannt) den geringsten Platzbedarf. Wenn Sie jedoch den Typ RAW verwenden möchten, müssen Sie die UUID in ein Array byte[] zerlegen. Dies ist ein wenig schwierig, da java.util.UUID nur eine String Repräsentation oder zwei long Werte zurückgibt. Die Wiederherstellung eines UUID -Objekts aus einem byte[] -Array ist noch komplizierter.

    
Stefan Ferstl 28.11.2012, 19:24
quelle

Tags und Links