Da wikipedia:B-Trees e índices de bitmap . Os casos de uso:
-
B-Trees são o tipo de índice típico usado quando você fazCREATE INDEX ...
em um banco de dados:
- Eles são muito rápidos quando você seleciona apenas um pequeno subconjunto dos dados do índice (máximo de 5% a 10% normalmente)
- Eles funcionam melhor quando você tem muitos valores indexados distintos.
- A combinação de vários índices B-Tree pode ser feita, mas abordagens mais simples costumam ser mais eficientes.
- Eles não são úteis quando há poucos valores distintos para os dados indexados ou quando você deseja obter um subconjunto grande (> 10% normalmente) dos dados.
- Cada índice B-Tree impõe uma pequena penalidade ao inserir/atualizar valores na tabela indexada. Isso pode ser um problema se você tiver muitos índices em uma tabela muito ocupada.
-
Os índices de bitmap são uma variante de índice mais especializada:
- Eles codificam valores indexados como bitmaps e, portanto, são muito eficientes em termos de espaço.
- Eles tendem a funcionar melhor quando há poucos valores indexados distintos
- Os otimizadores de banco de dados podem combinar vários bitmaps indexados com muita facilidade, o que permite a execução eficiente de filtros complexos em consultas.
- Eles são muito ineficientes ao inserir/atualizar valores.
Os índices de bitmap são usados principalmente em aplicativos de data warehouse, onde o banco de dados é somente leitura, exceto para os processos ETL, e você geralmente precisa executar consultas complexas em um esquema em estrela , em que os índices de bitmap podem acelerar a filtragem com base nas condições em suas tabelas de dimensão, que geralmente não têm muitos valores distintos.
Essas características tornam os índices B-Tree muito úteis para acelerar pesquisas em aplicativos OLTP, quando você está trabalhando com conjuntos de dados muito pequenos por vez, a maioria das consultas filtra por ID e deseja um bom desempenho simultâneo.
Como um breve resumo:use índices B-Tree (o índice "padrão" na maioria dos bancos de dados), a menos que você seja um desenvolvedor de data warehouse e saiba você se beneficiará de um índice de bitmap.