Как сделать правильный комплексный индекс?
Надо найти самую старую по обновленности запись, где n_flag=0 и num_status>=10.
btree(update_date) where n_flag=0 and num_status>=10
n_flag может быть 0..5
num_status 0..20
...
запись, где n_flag=0 и num_status>=10.
Указанным условиям при равномерном распределении значений соответствует ~9% записей, т.е. 18 млн. Причём отбор по n_flag более селективен.
Чисто теоретически оптимальным без использования фич Постгресса будет индекс (n_flag, update_date, num_status). 

DEMO fiddle. Правда, 200 млн. записей я генерить как-то не решился... но для 1 млн. записей запрос показывает 40-50 мс - по-моему, вменяемо.

PS. Индекс называется на "комплексный", а композитный. Кроме того, этот индекс - покрывающий, т.е. для обработки запроса серверу не требуется обращаться к таблице.