UUID
gibt eine universelle eindeutige Kennung zurück
(hoffentlich auch eindeutig, wenn auch in eine andere DB importiert).
Um aus dem MySQL-Dokument zu zitieren (Hervorhebung von mir):
Andererseits einfach ein INT
primärer ID-Schlüssel (z. B. AUTO_INCREMENT ) gibt eine eindeutige Ganzzahl zurück für die spezifische DB und DB-Tabelle, die aber nicht universell eindeutig ist (Wenn also in eine andere DB importiert wird, besteht die Möglichkeit, dass es Primärschlüsselkonflikte gibt).
In Bezug auf die Leistung sollte es keinen merklichen Unterschied geben, wenn Sie auto-increment
verwenden über UUID
. Die meisten Beiträge (einschließlich einiger der Autoren dieser Website) geben dies als solche an. Natürlich UUID
kann etwas mehr Zeit (und Speicherplatz) in Anspruch nehmen, aber dies ist in den meisten (wenn nicht allen) Fällen kein Leistungsengpass. Eine Spalte als Primary Key
haben sollten beide Entscheidungen hinsichtlich der Leistung gleich treffen. Siehe Referenzen unten:
- An
UUID
oder nicht zuUUID
? - Mythen,
GUID
vsAutoincrement
- Leistung:
UUID
vsauto-increment
in cakephp-mysql UUID
Leistung in MySQL?- Primärschlüssel:
ID
s gegenGUID
s (Coding-Horror)
(UUID
vs auto-increment
Leistungsergebnisse, adaptiert von Myths, GUID
vs Autoincrement
)
UUID
Vor- / Nachteile (angepasst von Primary Keys:ID
s gegen GUID
s
)
Hinweis
Ich würde die erwähnten Referenzen sorgfältig lesen und entscheiden, ob ich UUID
verwenden möchte oder nicht, je nach meinem Anwendungsfall. Das heißt, in vielen Fällen UUID
s wäre in der Tat vorzuziehen. Beispielsweise kann man UUID
generieren s ohne die Datenbank überhaupt zu verwenden/auf sie zuzugreifen, oder sogar UUID
verwenden s, die vorberechnet und/oder an anderer Stelle gespeichert wurden. Außerdem können Sie Ihr Datenbankschema und/oder Clustering-Schema einfach verallgemeinern/aktualisieren, ohne sich Gedanken über ID
machen zu müssen bricht und verursacht Konflikte.
In Bezug auf mögliche Kollisionen, zum Beispiel bei Verwendung von v4 UUIDS (zufällig), die Wahrscheinlichkeit, ein Duplikat zu finden innerhalb von 103 Billionen Version-4-UUIDs ist eine von einer Milliarde.