Sqlite mostra índices

Sqlite mostra índices
“Um índice é um tipo de estrutura de dados que integra e otimiza os valores de uma coluna (ou colunas) para pesquisa. Os índices (ou índices) são exclusivos das pesquisas de banco de dados, pois permitem que certas linhas em uma tabela sejam localizadas sem examinar toda a tabela. Como resultado, os índices podem melhorar significativamente o desempenho de algumas consultas. Os índices estão sempre associados a uma única tabela; No entanto, eles podem compreender muitas colunas da tabela.Normalmente, os índices permitem valores duplicados; No entanto, a palavra-chave exclusiva impede que os valores duplicados sejam inseridos ou atualizados em uma tabela com um valor não único. Como Null não é considerado um valor, um índice exclusivo não impedirá que um ou mais nulas apareçam. Você deve especificar não nulo na definição inicial da tabela para evitar nulos.

Quando você solta um índice, ele é removido do banco de dados, mas a tabela a que está associada não é afetada.

Com um exemplo, aprenderemos o que são os índices no SQLite, como definir índices em colunas únicas ou muitas no SQLite e como remover ou soltar índices SQLite; Então, discutiremos como mostrá -los no SQLITE.”

Sintaxe dos índices SQLite

Criar [exclusivo] Índice [se não existir] index_name em table_name (colunas… n);

A instrução Create Index é usada na sintaxe acima para criar um novo índice; o nome do índice fornecido refere -se a um nome de índice específico que precisamos gerar. As palavras -chave e o índice são palavras -chave, e a tabela especificada refere -se a uma tabela existente com um nome de coluna.

Se tivermos mais de um campo e esses dados precisam ser definidos exclusivamente para que possamos usar a palavra -chave exclusiva, podemos usar a palavra -chave exclusiva; Uma cláusula exclusiva é um componente opcional desta sintaxe.

Pontos -chave do índice SQLite

  • O uso de um índice acelera pesquisas selecionadas e onde cláusulas; No entanto, desacelera a entrada de dados nas operações de atualização e inserção. Não há influência nos dados quando os índices são criados ou eliminados.
  • Um índice é criado com a instrução CREATE INDEX. Ele permite nomear o índice, fornecer a tabela e qual índice de coluna ou colunas e defina se o índice deve estar em ordem ascendente ou descendente.
  • Os índices também são únicos, da mesma maneira que a restrição exclusiva proíbe registros duplicados na coluna ou coleção de colunas nas quais o índice é criado.

Como os índices funcionam no sqlite

Uma tabela específica deve estar conectada a cada índice. Um índice pode incluir um ou mais campos, mas todos devem estar na mesma tabela. Vários índices podem ser encontrados em uma tabela.

O SQLite fornece uma estrutura B-Tree para armazenar dados de índice sempre que você adicionar um índice. Os índices no SQLite são organizados usando o método B-Tree. A árvore B é uma árvore equilibrada, em vez de uma árvore binária, pois o B significa equilibrado.

O índice compreende valores das colunas que definimos no índice, bem como o valor row_id para cada uma dessas colunas. O SQLite agora pode localizar rapidamente a linha usando as entradas dos campos indexados.

Imagine um índice de banco de dados semelhante a um índice de livro. Podemos localizar rapidamente várias páginas com base em palavras -chave pesquisando através do índice.

Quando os índices não devem ser usados?

Embora os índices sejam destinados a melhorar a eficiência do banco de dados, há situações em que devem ser desconsiderados. Quando um índice deve ser usado? Os seguintes fatores podem ajudá -lo a tomar sua decisão.

Não é recomendável utilizar índices em:

  • Mesas com uma pegada pequena
  • Mesas que são atualizadas ou inseridas em lotes enormes com frequência.
  • Colunas nulas pesadas.
  • Colunas frequentemente modificadas.

Exemplo 1

Primeiro, devemos construir a tabela para ver seus índices. Mostramos uma tabela abaixo, que criamos com o comando create no sqlite e também definimos campos desta tabela.

Crie a tabela story_books (
book_id int a chave primária ,
book_name char (10) ,
BOOK_PRICE FLAOT
);

Agora, criamos um índice de uma única coluna. Um índice de uma coluna é construído em torno de uma única coluna de banco de dados. Podemos passar várias colunas por vez para criar índices de uma tabela específica. Demos um único nome de campo book_name do tabela story_books na seguinte consulta.

# Criar índice idx_story_books_book em story_books (book_name);

Usando o .ÍNDICES Método, o índice criado na tabela é visível da seguinte maneira:

Índices exclusivos são utilizados para integridade de dados e desempenho. Um índice exclusivo impede que valores duplicados sejam inseridos na tabela. Usando a seguinte consulta, criamos um índice exclusivo na coluna book_id da tabela story_book.

Criar índice exclusivo idx_book_id
Em story_books (book_id);

A saída mostra que o índice foi criado com sucesso.

Criamos um índice seletivo em uma tabela Story_book, incluindo apenas uma parte dos registros no índice. Como usamos uma cláusula onde, apenas os registros em que o book_price não é nulo, obtenha um índice parcial. Os registros com um valor nulo para book_name não farão parte do índice.

Crie índice idx_book_price
No story_books (book_price)
Onde book_price não é nulo;

Ao executar o .Comando de índices, ele mostra os índices na tabela. Como você pode ver, esse índice book_price está incluído.

Exemplo 2

O comando Drop do SQLite é usado para remover um índice. A queda de um índice deve ser feita com cautela porque a funcionalidade pode ser afetada. Aqui, com o comando DROP, temos uma cláusula se existir. Se o índice escolhido não existir, nenhuma exceção será gerada. Não é obrigatório usar a cláusula if exist; Podemos pular isso e simplesmente soltar a mesa. Abaixamos o índice book_name da tabela story_book pela seguinte consulta.

O índice de gota se existe IDX_STORY_BOOKS_BOOK_NAME;

O índice com a coluna book_name é descartado como mostrado no shell.

Exemplo 3

Usamos a tabela SQLITE_MASTER em vez de usar o .comando índices. Embora esta tabela contenha mais do que simplesmente indexos, você pode usar a cláusula WHERE para limitá -la apenas a índices.

Selecione
Nome, tbl_name
…> De sqlite_master
…> Onde tipo = 'índice';

Temos a tabela para a qual cada índice corresponde. A coluna Tbl_name mantém o controle disso da seguinte maneira.

Conclusão

Nesta seção, analisamos o básico do estabelecimento de um índice no SQLite e discutimos como mostrar que os índices no SQLite com alguns exemplos. Esses exemplos são fáceis de usar e também as maneiras que mostram os índices no sqlite. Quando você lê o artigo inteiro, você pode ser extremamente claro.