Jestem nowy w PostgreSQL i trochę nowy w bazach danych w ogóle. Czy istnieje ustalony sposób indeksowania wartości UUID w Postgres? Jestem podzielony między używaniem mieszania i używania trie, chyba że jest już coś wbudowanego, z którego korzysta automatycznie. Cokolwiek użyję, będzie obsługiwać ogromne ilości danych.
Rodzina operatorów SP-GiST „text_ops” indeksuje za pomocą trie. Ponieważ identyfikatory UUID są dość długie i bardzo odmienne, brzmią atrakcyjnie, nawet jeśli przeprowadzałbym tylko pełne wyszukiwania.
Istnieje również opcja skrótu. Hashing to O (1) i nie będę musiał robić żadnych porównań poza równością, oczywiście, ale ponieważ UUID są dość długie, obawiam się, że generowanie z nich skrótów zmarnowałoby dużo czasu.
A może jest to coś, co zbytnio zależy od systemu i specyfiki?
Wolę używać bigserial w większości przypadków, ale powiedziano mi używać UUID do tego. Potrzebujemy UUID, ponieważ możemy mieć wiele serwerów korzystających z różnych baz danych, więc nie ma gwarancji, że będziemy mieć unikalne biginty. Możemy zastosować inną sekwencję (i seed) dla każdego serwera, ale nadal nie jest tak elastyczny jak UUID. Na przykład nie bylibyśmy w stanie migrować wpisów bazy danych z jednego serwera na inny bez konwersji wszędzie identyfikatorów i ich odniesień.