Sobes.tech
Junior

Quais são os tipos de índices existentes em bancos de dados?

sobes.tech IA

Resposta da IA

Os principais tipos de índices em bases de dados:

  1. B-tree (B+tree):

    • O tipo mais comum.
    • Adequado para uma vasta gama de operações: pesquisa por intervalo, correspondência exata, ordenação.
    • Usado por padrão em muitos SGBDs (MySQL, PostgreSQL, Oracle).
  2. Índices hash:

    • Baseados em tabela de hash.
    • Muito rápidos para buscas por correspondência exata (=).
    • Não adequado para buscas por intervalo (BETWEEN, <, >), ordenação (ORDER BY) ou busca por padrão (LIKE).
  3. Índices de texto completo:

    • Destinados à pesquisa em campos de texto (BLOB, TEXT).
    • Permitem procurar palavras ou frases, considerar sinónimos e realizar análise morfológica.
    • Exemplos: MATCH...AGAINST no MySQL/MariaDB, tsvector/tsquery no PostgreSQL.
  4. Índices espaciais (R-tree):

    • Usados para indexar dados geográficos ou espaciais.
    • Permitem encontrar objetos numa área ou limites específicos de forma eficiente.
  5. Índices bitmap (mapa de bits):

    • Usado em alguns SGBDs (por exemplo, Oracle, PostgreSQL).
    • Adequado para campos com baixa cardinalidade (poucos valores únicos, por exemplo, género, estado: ativo/inativo).
    • Pode ser muito eficiente para consultas complexas com operações AND e OR.
  6. Índice clusterizado:

    • Afeta a ordem física de armazenamento das linhas da tabela.
    • Pode haver apenas um índice clusterizado por tabela.
    • Frequentemente usado para a chave primária.
  7. Índice não clusterizado:

    • Não determina a ordem física das linhas.
    • Contém ponteiros para a localização física das linhas de dados.
    • Uma tabela pode ter vários índices não clusterizados.
  8. Índice de cobertura (covering):

    • Um índice que contém todas as colunas necessárias para executar uma consulta, incluindo colunas na SELECT, condições em WHERE e ORDER BY.
    • Permite ao SGBD não precisar acessar os dados da tabela, acelerando a execução da consulta.
  9. Índice funcional (por expressão):

    • Índice construído sobre o resultado de uma função ou expressão numa ou várias colunas.
    • Permite indexar valores calculados.

Ao escolher o tipo de índice, considera-se o tipo de dados, a frequência e a natureza das consultas (busca por valor exato, intervalo, ordenação, busca de texto completo, etc.) e a cardinalidade da coluna.