- Extensão do PostgreSQL da Supabase que recomenda índices para melhorar o desempenho de consultas
- Ao passar uma consulta para a função
index_advisor(), ela retorna o custo antes/depois para startup/total e o SQL DDL para criar o índice
- Execução:
select * from index_advisor('select book.id from book where title = $1');
- Retorno:
{"CREATE INDEX ON public.book USING btree (title)"}
- Para consultas complexas, pode retornar várias instruções de criação de índice
- Suporte a parâmetros genéricos (
$1, $2, ..)
- Suporte a Materialized View
- Consegue identificar tabelas/colunas ocultas por views
3 comentários
Na versão atual, ele recomenda apenas índices
btreede uma única coluna. Se as condições de consulta ficarem mais complexas ou se você estiver usando busca full text, não poderá utilizá-lo. https://supabase.com/docs/guides/…Quando as condições da consulta são complexas, dizem que vários índices de coluna única são usados em vez de um índice multicoluna, mas parece que o comportamento não é exatamente o mesmo. Ou então também dizem que há situações em que o melhor é usar ao mesmo tempo um índice multicoluna e vários índices de coluna única
https://www.postgresql.org/docs/current/indexes-bitmap-scans.html
Comentários do Hacker News
limitna CTE, o Postgres tenta executar cada join em paralelo e acaba tentando fazer join de um número enorme de linhasindex_advisor(text)para a sessão e começar a fazer hard coding e heurísticas