Quais são as vantagens e desvantagens de usar um 'índice parcial'?

votos
3

PostgreSQL permite a criação de 'índices parciais', que são basicamente índices com predicados condicionais. http://www.postgresql.org/docs/8.2/static/indexes-partial.html

Durante o teste, descobri que eles estão realizando muito bem para um caso em que a consulta está acessando apenas alguns 12 linhas em uma tabela com 120k linhas.

Mas, antes de implantar esse, existem desvantagens ou ressalvas que deve estar ciente de?

Publicado 12/11/2008 em 10:26
fonte usuário
Em outras línguas...                            


2 respostas

votos
4

Pró:

Isso reduz o tamanho do índice, o que irá acelerar as consultas que fazem uso do índice. Ele também irá acelerar muitas operações de actualização da tabela porque o índice não precisa ser atualizado em todos os casos

Vigarista:

Uma vez que este não é mais um índice real, se você completa juntar ou filtragem em valores não cobertos pelo índice, o desempenho degrada como o tamanho da tabela cresce.

Respondeu 12/11/2008 em 10:32
fonte usuário

votos
6

A principal ressalva é não usá-los de forma inadequada. Eles são bons para identificar linhas que correspondem um conjunto de critérios em que essas linhas são a minoria em uma grande mesa.

Tome uma mesa Orders, por exemplo, com uma order_statuscoluna e distribuição de seus dados sobre os status de ordem como segue:

  • New 5%
  • Em lista de espera 2%
  • Em Trânsito 5%
  • Completado 85%
  • Obtivemos 3%

Se você consultar muitas vezes where order_status = 'New'para obter uma lista de novas encomendas e, em seguida, mais o resto do tempo apenas referência ordens diretamente pelo ID, em seguida, um índice parcial seria benéfica. No seu exemplo de 12 linhas fora de 120k isso é ainda mais verdadeiro.

Respondeu 23/12/2008 em 05:18
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more