month
PRIMARY KEY (col_1, month, col_2)
ORDER BY (col_1, month, col_2)
SETTINGS index_granularity = 8192;
```
Есть запрос
where (col_1 IN (list_of_cols_1))
AND month <= 202110
AND month >= 202104
AND greatest(col_4, col_5) >= 100
AND 1 --optional col_2 filter
В Postgres работа индекса зависила от порядка в where (то есть если primary key на (a, b), то поиск where b != ‘z’ and a = ‘x’ не использует индекс, нужно именно `where a = ‘x’ and b = ‘z’`)
Зависит ли производительность запроса от порядка where?
Скорее всего нет, сильная зависимость между partition+order by ну и естественно порядок в order by Кстати если у вас PRIMARY KEY и ORDER BY совпадает, то можно пропустить PRIMARY KEY.
Обсуждают сегодня