BRIN index
Block Range INdex — a minimal index type in PostgreSQL for large, physically-sorted tables. Stores min/max per N pages. Since 9.5 (2016). Orders of magnitude smaller than a B-tree but requires data to be sequential.
Perfect for time-series and log tables where rows are inserted in time order. Scans can skip whole block-ranges where min/max doesn't match. Trade-off: BRIN on unordered data is useless — every range matches everything. Auto-summarize runs at VACUUM. Real performance gain: a 1 TB log table can have a 1 MB BRIN index vs 30 GB B-tree. Difference from GiST: BRIN doesn't change how the search works, it just filters out sections.