English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Os índices são tabelas de busca especiais que os motores de busca de banco de dados podem usar para acelerar a recuperação de dados. Em resumo, anindexÉ um ponteiro para os dados da tabela. Os índices no banco de dados são muito semelhantes aos índices ao final de um livro.
Por exemplo, se você quiser referenciar todas as páginas de um livro que discutem um determinado tema, você primeiro deve consultar o índice, que lista todos os temas em ordem alfabética, e então referenciar uma ou mais páginas específicas.
Os índices ajudam a acelerar as consultas SELECT e as cláusulas WHERE, mas eles podem diminuir a velocidade da inserção de dados através das instruções UPDATE e INSERT. Pode-se criar ou excluir índices sem afetar os dados.
A criação de índices envolve a instrução CREATE INDEX, que permite que você nomeie o índice, especifique a tabela e as colunas ou combinações de colunas a serem indexadas, e indique se o índice deve ser ascendente ou descendente.
Os índices também podem ser únicos, semelhantes à restrição UNIQUE, porque os índices podem evitar a existência de entradas repetidas nas colunas ou combinações de colunas que os índices cobrem.
A seguir está a sintaxe básicaCREATE INDEX.
CREATE INDEX index_name ON table_name;
O índice de coluna única é criado com base em uma coluna da tabela. A sintaxe básica é a seguinte-
CREATE INDEX index_name ON table_name (column_name);
O índice único não é usado apenas para melhorar o desempenho, mas também para a integridade dos dados. O índice único não permite que valores repetidos sejam inseridos na tabela. A sintaxe básica é a seguinte-
CREATE UNIQUE INDEX index_name ON table_name (column_name);
O índice composto é um índice sobre duas ou mais colunas da tabela. A sintaxe básica é a seguinte-
CREATE INDEX index_name ON table_name (column1, column2);
Independentemente de criar índice de coluna única ou composto, considere o (s) column(s) que você pode usar frequentemente como condição de filtro na cláusula WHERE da consulta.
Se usar apenas uma coluna, deve-se escolher índice de coluna única. Se as cláusulas WHERE frequentemente usarem duas ou mais colunas como filtros, o índice composto será a melhor escolha.
O índice implícito é criado automaticamente pelo servidor do banco de dados ao criar o objeto. Índices são automaticamente criados para restrições de chave primária e únicas.
Exemplo
A seguir está um exemplo, onde criaremos um índice para a coluna salário na tabela COMPANY-
sqlite> CREATE INDEX salary_index ON COMPANY (salary);
Agora, vamos usar o seguinte.indicesO comando lista todos os índices disponíveis na tabela COMPANY:
sqlite> .indices COMPANY
Isso resultará em seguinte, ondesqlite_autoindex_COMPANY_1é índice implícito,O índiceO índice de estilo é criado no momento da criação da tabela.
salary_indexsqlite_autoindex_COMPANY_1
Você pode listar todos os intervalos de índice de banco de dados conforme mostrado a seguir:
sqlite> SELECT * FROM sqlite_master WHERE type = 'index';
SQLite pode ser usado DROPComando para excluir índice. A exclusão de índice deve ser feita com cautela, pois pode diminuir ou aumentar o desempenho.
Aqui está a sintaxe básica:-
DROP INDEX index_name;
Você pode usar a seguinte declaração para excluir índices criados anteriormente.
sqlite> DROP INDEX salary_index;
Embora os índices visem melhorar o desempenho do banco de dados, às vezes deve-se evitar usá-los. As seguintes diretrizes indicam quando deve-se reconsiderar o uso de índices.
Índices não devem ser usados-
Tabelas pequenas.
Tabelas com operações de atualização ou inserção em lote frequentes e em grande quantidade.
Colunas que contêm muitos NULLs.
Colunas frequentemente operadas.