BRIN-индекс
Block Range INdex — минималистичный тип индекса PostgreSQL для больших физически упорядоченных таблиц. Хранит min/max для каждых N страниц. Появился в 9.5 (2016). На порядки меньше B-tree, но требует последовательных данных.
Идеален для временных рядов и таблиц логов, где строки вставляются в порядке времени. При сканировании можно пропускать целые диапазоны блоков, где min/max не подходят. Компромисс: на неупорядоченных данных BRIN бесполезен — каждый диапазон подходит под любое значение. Автосуммаризация выполняется при VACUUM. На практике: у таблицы логов в 1 ТБ BRIN-индекс может занимать 1 МБ против 30 ГБ у B-tree. Отличие от GiST: BRIN не меняет способ поиска, а лишь отсеивает участки.