J'ai créé une application dans les Rails sur Heroku à l'aide d'une base de données PostgreSQL.
Il a un couple de tableaux conçus pour être en mesure de les synchroniser avec des appareils mobiles, où les données peuvent être créés sur des lieux différents. À cet effet, j'ai un uuid champ est une chaîne de caractères stockant un GUID en plus d'un incrément automatique de la clé primaire. L'uuid est celui qui est à communiquer entre le serveur et les clients.
J'ai réalisé après la mise en œuvre du moteur de synchronisation côté serveur que cela conduit à des problèmes de performances lors avoir besoin de la carte entre les uuid<->id de tous les temps (lors de l'écriture des objets, j'ai besoin de la requête pour l'uuid pour obtenir l'id avant de l'enregistrer et à l'opposé lors de l'envoi des données).
Je suis maintenant à la réflexion sur le passage à l'utilisation d'UUID en clé primaire, ce qui rend l'écriture et de la lecture de beaucoup plus simple et plus rapide.
J'ai lu que UUID comme clé primaire peut parfois donner le mauvais rendement de l'indice (indice de fragmentation) lors de l'utilisation de cluster index de clé primaire. PostgreSQL souffrent de ce problème ou est-ce OK pour utiliser les UUID comme clé primaire?
J'ai déjà un UUID aujourd'hui, la colonne afin de stockage sage, il sera mieux parce que je baisse régulière de l'id de la colonne.