Frage

Ich möchte UUIDs als IDs für meine JPA -Objekte verwenden.

Ich benutze derzeit nur eine Zeichenfolge, um die UUID zu speichern. Was wäre effizienter?

War es hilfreich?

Lösung

Wie messen Sie die Effizienz?

Zum Beispiel das Speichern der UUID (eine Textcodierung von a byte[]) als ein paar von long Mit Werten können Sie sie sehr schnell mit einer 64-Bit-Architektur vergleichen (viel schneller als String Vergleich, der Zeichen für Zeichen ist). Ihre Codierungseffizienz würde jedoch leiden, da Sie einen benutzerdefinierten Typ schreiben müssen.

Was ist in Ihrem Fall wichtig?


Wenn Sie an der Leistung in der Datenbank interessiert sind, hängt die Leistung etwas von der von Ihnen ausgewählten Datenbank ab, aber alle vergleichen UUIDS-Byte-byte im Wesentlichen. Das Wichtigste ist also, Unterschiede zwischen den Schlüsseln zu machen, die eher zum Beginn des Schlüssels sind.

Uuids sind in dieser Hinsicht gut gestaltet. Der beste Uuid ist der "zufällige" Stil. Sie haben nirgendwo viele häufige Substrings, einschließlich des Anfangs, und sie lecken keine Informationen über die Maschine, die sie generiert hat. Aber der "Timestamp" -Stil von UUIDs ist ebenfalls einen guten Schlüssel, da die Bit mit niedriger Ordnung (die schnell variieren) zuerst in der Saite liegen, während die hohen Ordnung (die sich nicht für aufeinanderfolgende UUIDs ändern) kommen später.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top