Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Die Unterschiede zwischen INT und UUID in MySQL

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:

  1. An UUID oder nicht zu UUID ?
  2. Mythen, GUID vs Autoincrement
  3. Leistung:UUID vs auto-increment in cakephp-mysql
  4. UUID Leistung in MySQL?
  5. Primärschlüssel:ID s gegen GUID 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.