Ich möchte UUIDs als IDs für meine JPA-Objekte verwenden.Beste (effizienteste) DataType für UUIDs als JPA IDs verwenden
Ich verwende derzeit nur eine Zeichenfolge, um die UUID zu speichern. Was wäre effizienter?
Ich möchte UUIDs als IDs für meine JPA-Objekte verwenden.Beste (effizienteste) DataType für UUIDs als JPA IDs verwenden
Ich verwende derzeit nur eine Zeichenfolge, um die UUID zu speichern. Was wäre effizienter?
Wie messen Sie die Effizienz?
Zum Beispiel Speichern der UUID (die eine Textcodierung eines byte[]
ist) als ein paar long
Werte ermöglicht es Ihnen, sie sehr schnell auf einem 64-Bit-Architektur zu vergleichen (viel schneller als String
Vergleich, das ist Zeichen für Zeichen). Ihre Codierungseffizienz würde jedoch darunter leiden, da Sie einen benutzerdefinierten Typ schreiben müssen.
Was ist in Ihrem Fall wichtig?
Wenn Sie in der Leistung innerhalb der Datenbank interessiert sind, wird die Leistung hängt etwas von der Datenbank, die Sie wählen, aber alle werden im Wesentlichen vergleichen UUIDs Byte-für-Byte. Wichtig ist also, dass die Unterschiede zwischen den Schlüsseln eher am Anfang des Schlüssels liegen.
UUIDs sind in dieser Hinsicht gut entworfen. Die beste UUID ist der "zufällige" Stil. Sie haben nicht viele gemeinsame Teilzeichenfolgen, einschließlich des Anfangs, und sie verlieren keine Informationen über die Maschine, die sie erzeugt hat. Aber der "Zeitstempel" -Stil von UUIDs macht auch einen guten Schlüssel, da die niederwertigen Bits (die sich schnell ändern) zuerst in der Kette sind, während die höherwertigen Bits (die sich für aufeinanderfolgende UUIDs nicht ändern) kommen später.
Joins und Indexeffizienz – systemoutprintln