Indice BRIN
Block Range INdex — un tipo di indice minimale di PostgreSQL per tabelle grandi e fisicamente ordinate. Memorizza minimo/massimo ogni N pagine. Dalla versione 9.5 (2016). Ordini di grandezza più piccolo di un B-tree, ma richiede dati sequenziali.
Perfetto per serie temporali e tabelle di log in cui le righe sono inserite in ordine cronologico. Le scansioni possono saltare interi intervalli di blocchi il cui minimo/massimo non corrisponde. Compromesso: un BRIN su dati non ordinati è inutile, perché ogni intervallo corrisponde a tutto. La sintesi automatica avviene durante il VACUUM. Guadagno reale: una tabella di log da 1 TB può avere un indice BRIN da 1 MB contro 30 GB di un B-tree. Differenza rispetto a GiST: BRIN non cambia il modo in cui avviene la ricerca, si limita a escludere porzioni di dati.