BRIN Index

PostgreSQL 🔴 Senior

Definition

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.

Termes lies

#sgbd#interview#database#postgresql