PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come utilizzare molti operatori LIKE e utilizzare index

Puoi creare un indice trigramma che supporterà la tua query.

Per questo hai bisogno del pg_trgm estensione; esegui quanto segue come superutente:

CREATE EXTENSION pg_trgm;

Quindi puoi creare un indice GIN:

CREATE INDEX ON dir USING gin (path gin_trgm_ops);

Questo indice può essere utilizzato con il tuo secondo e terzo approccio, quindi dovrebbe fare al caso tuo.

Con schemi brevi come quello nei tuoi esempi, l'indice non sarà molto efficace.

Puoi anche utilizzare un indice GiST, che sarà probabilmente più piccolo, ma più lento da cercare.

Nota che puoi usare quell'indice anche con pattern che iniziano con % .