Prima di tutto, è necessario utilizzarli per l'indicizzazione della ricerca di testo? GIN e GiST sono indici specializzati per alcuni tipi di dati. Se hai bisogno di indicizzare semplici valori char o interi, il normale indice B-Tree è il migliore.
Comunque, la documentazione di PostgreSQL ha un capitolo su GIST
e uno su GIN
, dove puoi trovare maggiori informazioni.
E, ultimo ma non meno importante, il modo migliore per trovare qual è il migliore è generare dati di esempio (per quanto necessario per essere uno scenario reale) e quindi creare un indice GIST , misurando quanto tempo è necessario per creare l'indice, inserire un nuovo valore, eseguire una query di esempio. Quindi rilascia l'indice e fai lo stesso con un indice GIN. Confronta i valori e avrai la risposta di cui hai bisogno, in base ai tuoi dati.