Eu criei o seguinte índice de várias colunas
CREATE INDEX ON message_log (website, in_use, insert_timestamp);
No entanto, quando executo a consulta a seguir, parece que ela não está usando a consulta, pois está demorando muito para ser concluída.
select id from message_log where website = 'forgezilla' AND in_use = false ORDER BY insert_timestamp NULLS FIRST;
O índice de várias colunas pode ser usado para ordenar por? se sim, criei a ordenação errada ao criar o índice?
Não, seu índice fornecido não pode ser usado para ORDER BY. Você pode ver isso fazendo
set enable_sort=off
e explicando a consulta, você obtém uma classificação de qualquer maneira porque essa é a única maneira de o PostgreSQL fazer o trabalho.Mas se você criar o índice correto:
então ele será usado para o ORDER BY.