Wird UUID als Primärschlüssel in PostgreSQL eine schlechte Indexleistung liefern?

Ich habe eine App in Rails on Heroku mit einer PostgreSQL-Datenbank erstellt.

Es verfügt über einige Tabellen, die für die Synchronisierung mit Mobilgeräten entwickelt wurden, in denen Daten an verschiedenen Orten erstellt werden können. Dafür habe ich ein UUID-Feld, das eine Zeichenfolge ist, die eine GUID zusätzlich zu einem Auto-Inkrement-Primärschlüssel speichert. Die UUID ist diejenige, die zwischen dem Server und den Clients kommuniziert wird.

Nachdem ich die Synchronisierungsengine auf der Serverseite implementiert hatte, wurde mir klar, dass dies zu Leistungsproblemen führt, wenn ich ständig zwischen uuid <-> id abbilden muss (beim Schreiben von Objekten muss ich nach der uuid fragen, um die ID zu erhalten, bevor ich sie speichere, und nach der Gegenteil beim Zurücksenden von Daten).

Ich denke jetzt darüber nach, nur UUID als Primärschlüssel zu verwenden, um das Schreiben und Lesen viel einfacher und schneller zu machen.

Ich habe gelesen, dass die UUID als Primärschlüssel manchmal eine schlechte Indexleistung (Indexfragmentierung) liefert, wenn der gruppierte Primärschlüsselindex verwendet wird. Tritt dieses Problem bei PostgreSQL auf, oder ist es in Ordnung, UUID als Primärschlüssel zu verwenden?

Ich habe heute bereits eine UUID-Spalte, was den Speicher betrifft, ist dies besser, da ich die reguläre ID-Spalte lösche.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage