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?
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.