Em 11 de março de 2016 16:46, Vinícius Aquino do Vale
<aquino.v...@gmail.com> escreveu:
> Olá Danilo,
>
> Existe diferenças sim.
>
> Dê uma olhada neste post, para entender melhor a situação e o uso de índices
> compostos.

Este artigo que o Vinicius lhe recomendou já poderá lhe dar uma boa
ideia de como funciona o SGBD em relação aos índices.

Pode haver diferenças de desempenho significativas entre uma forma e
outra (me referindo ao tipos descritos pelo OP). Cito 3 principais
itens que interferem no desempenho dos índices:

1) a quantidade de distinções de um campo em relação às linhas. Em
outras palavras, quantas vezes o valor muda ao longo de todos os
registros;
2) a ordem dos campos no índice:  (campo1,campo2) ou (campo2,campo1);
3) as colunas utilizadas na consulta SQL. Se apenas os campos do
índice estiverem em uma consulta o acesso será "index only", sem a
necessidade de fazer um fetch adicional nos dados da tabela. Em alguns
casos é recomendável incluir um campo no índice - no final da lista de
colunas - para proporcionar um acesso "index only".

Bônus:

Já ia me esquecendo da clausula WHERE [1] nos índices do PostgreSQL,
que é fantástica! Nela você pode definir um predicado de consulta
específico que o PostgreSQL trata de forma indexada. Em determinadas
situações isto pode salvar vidas! :)

[1] http://www.postgresql.org/docs/current/static/sql-createindex.html

TIAGO J. ADAMI
http://www.adamiworks.com
@tiadami
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a