BRIN Index
PostgreSQL 🔴 SeniorDefinition
Block Range Index, index extremement compact qui stocke les min/max par bloc de pages. Ideal pour les colonnes naturellement ordonnees comme les timestamps.
Analogie
Au lieu d'indexer chaque page d'un livre, noter juste 'pages 1-50 : chapitres A-C'.
Exemple de code
CREATE INDEX idx_logs_time
ON logs USING brin (created_at)
WITH (pages_per_range = 128);
Cas d'usage
Indexer des tables de logs ou de series temporelles avec des milliards de lignes et un index minuscule.
Anti-pattern
Utiliser BRIN sur des colonnes dont les valeurs ne sont pas correlees a l'ordre physique des lignes.