índice
O que é um índice
Um índice é uma estrutura opcional associada a uma tabela, é uma forma de acessar dados rapidamente e melhorar o desempenho do banco de dados. O banco de dados pode criar explicitamente um índice para acelerar a execução de instruções SQL na tabela. Quando a chave do índice é usada como uma condição de consulta, o índice aponta diretamente para o local da linha que contém esses valores. Mesmo se o índice for excluído, não há necessidade de modificar nenhuma instrução SQL. definição
Classificação do índice
Classificação física | Classificação lógica |
---|---|
Índice particionado ou não particionado | Coluna única ou índice combinado |
Índice de árvore B | Índice único ou não único |
Índice de chave normal ou reversa | Com base no índice funcional |
Índice de bitmap |
Índice de árvore B
O índice da árvore B geralmente também é chamado de índice padrão. A parte superior do índice é 根
, que contém itens que apontam para o próximo nível no índice. O próximo nível é dividido em blocos, e os blocos divididos apontam para os blocos no próximo nível do índice.O nível mais baixo é 叶节点
, que contém entradas de índice que apontam para linhas da tabela. O bloco de folhas é 双向链表
útil para verificar o índice em ordem crescente e decrescente de palavras-chave
SQL>create [unique] index_name on table_name(column_list)
[tablespace tablespace_name]
- unique
: Usado para especificar um índice exclusivo, por padrão é um índice não exclusivo
- index_name
: Nome do índice : Nome da
- table_name
tabela
- column_list
: Nome da coluna, pode ser várias colunas, separadas por vírgulas
- tablespace_name
: Especifique um espaço de tabela para o índice
Índice único e índice não único
- Índice único:
Não há valores duplicados em nenhuma das duas linhas da coluna que define o índice. A chave do índice no índice exclusivo pode apontar apenas para uma linha da tabela. Crie um índice exclusivo correspondente ao criar uma restrição de chave primária e criar uma restrição única
- Índice não único:
Uma única palavra-chave pode ter várias linhas associadas a ela
Índice de chave reversa
与常规B树索引相反,反向键索引在保持列顺序的同时反转列的字节。反向索引通过反转索引
键的数据值来实现,其优点是对于连续增长的索引列,反转索引列可以将索引数据分散在多
个索引块间,减少I/O瓶颈的发生。
SQL>create unique index_reverse_name on table_name(column_list) REVERSE;
REVERTER
Índice de bitmap
A vantagem do índice de bitmap é que ele é o mais adequado
低基数列
(o valor desta coluna é finito e, teoricamente, não será infinito). Por exemplo, o tipo de trabalho (coluna de trabalho) na tabela de funcionários, mesmo se houver milhões de registros de funcionários, o tipo de trabalho também é calculável e o tipo de coluna de trabalho pode ser usado como a位图索引
coluna de categoria da tabela de livro.
O índice de bitmap tem as seguintes vantagens
- Para um grande número de consultas instantâneas, o tempo de resposta pode ser reduzido
- Em comparação com outras tecnologias de indexação, o espaço ocupado é significativamente reduzido
- Mesmo em hardware de terminal com configuração muito baixa, um desempenho significativo pode ser
obtido.O índice de bitmap não armazena diretamente rowId, mas armazena o mapeamento de bits de byte para rowId, reduzindo o tempo de resposta e economizando espaço.
位图索引
Não deve ser aplicada à ocorrência frequente deinsert
,update
,delete
na mesa de operações, as operações DML são dispendiosos em termos de desempenho, o índice de mapa de bits é o mais adequado para os dados de armazenagem e sistemas de apoio de decisões
SQL>create bitmap index index_bit_name on table_name(column_name)
Outros índices
- Índice composto: crie um índice em várias colunas da tabela, as colunas do índice não precisam estar na mesma ordem que as colunas da tabela, nem adjacentes umas às outras
- Cenários de uso :Quando certos campos são frequentemente combinados com o operador e na cláusula where da instrução SQL a ser usada como o predicado da chave de filtro
- Princípio de classificação de campo de índice composto
- O
频繁
campo mais usado vem primeiro - Use a mesma frequência, coloque o
选择性
campo mais primeiro
- O
- Índice baseado em função: Se a função ou expressão usada envolver uma ou mais colunas na tabela que está sendo construída, um índice baseado em função é criado.O índice dado à função pode ser criado como uma árvore B ou índice de bitmap.
- Nenhuma função agregada pode aparecer na expressão,
- Não pode ser criado em uma coluna do tipo LOB,
- Deve ter permissão QUERT REWRITE ao criar
Princípio de uso do índice
- Crie um índice após importar os dados da tabela. Caso contrário, o índice deve ser atualizado toda vez que os dados são inseridos na tabela
- Crie índices em tabelas e campos apropriados. Se os dados recuperados com frequência forem inferiores a 15% da tabela, você precisará criar índices
- Limite o número de índices na tabela. Quanto mais índices, maior será a carga de trabalho de modificação do índice ao modificar a tabela
Resumindo
- O índice B-tree é um índice geral, é o tipo de índice padrão ao criar um índice
- O índice de chave reversa é construído em uma coluna cujo valor está aumentando continuamente
- O índice de bitmap é adequado para criar em colunas de baixa cardinalidade
- Com base no índice funcional
- Princípio de uso do índice