PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como usar o uuid com o tipo de índice postgresql gist?

Postgres 10 ou mais recente


btree_gist agora também abrange o tipo de dados uuid , como Paul comentou . (E alguns outros tipos de dados, notavelmente todos os enum tipos.)

Agora tudo que você precisa fazer:instalar a extensão uma vez por banco de dados:
CREATE EXTENSION btree_gist;

Então seu índice deve funcionar.

Relacionado:

Postgres 9.6 ou anterior


(Resposta original.)
Normalmente eu sugeriria o módulo adicional btree_gist , mas o tipo uuid é não coberto por ela.

Em teoria, como um UUID é a 128-bit quantity (por documentação ), a maneira mais eficiente seria convertê-lo em dois bigint ou float8 para efeito de índice. Mas nenhum desses elencos é definido no Postgres padrão.

Encontrei um
Para fazer uso desse índice funcional, as consultas devem corresponder a essa expressão. Você pode usar a abreviação "value"::text nas consultas (mas não na definição do índice sem adicionar mais parênteses).

Além:não use value como nome da coluna, é uma
palavra reservada no SQL padrão .

A pergunta é:por que você precisa do índice GiST. A melhor solução depende do objetivo.