Я новичок в PostgreSQL и несколько новичок в базах данных в целом. Существует ли установленный способ индексации значений UUID в Postgres? Я разделен между использованием хеширования и использованием trie, если только у него уже нет чего-то встроенного, что он использует автоматически. Все, что я использую, будет обрабатывать огромные объемы данных.
Семейство операторов SP-GiST "text_ops" индексирует с помощью дерева. Поскольку UUID довольно длинные и очень разные, они звучат привлекательно, даже если бы я только когда-либо делал поиск по полному совпадению.
Также есть опция хеширования. Хеширование - это O (1), и мне не нужно делать никаких сравнений, кроме равенства, конечно, но поскольку UUID довольно длинные, я боюсь, что генерация хешей из них потратит много времени.
Или это слишком сильно зависит от системы и особенностей использования?
Я бы предпочел использовать bigserial в большинстве случаев, но мне сказали использовать для этого uuid . Нам нужен uuid, потому что у нас может быть несколько серверов, использующих разные базы данных, поэтому нет гарантии, что у нас будут уникальные особенности. Мы могли бы использовать различную последовательность (и начальное число) для каждого сервера, но она все еще не так гибка, как UUID. Например, мы не сможем перенести записи базы данных с одного сервера на другой без конвертации идентификаторов и их ссылок повсюду.