Índice de Força MySQL

Índice de Força MySQL
O valor específico em um campo de tabela pode ser pesquisado rapidamente usando um índice. Se nenhum índice for definido na tabela, a pesquisa começará a partir do primeiro registro e parará de pesquisar onde existe o valor de pesquisa. Se o valor da pesquisa não existir na tabela, a pesquisa será interrompida após a iteração do último registro. É muito demorado para a mesa grande. O MySQL usa índices para os campos da tabela para tornar a pesquisa mais rápida. O otimizador de consulta do MySQL Server é um componente útil para otimizar a execução da consulta usando estatísticas disponíveis. Se as estatísticas mostrarem que o valor de pesquisa existe na maioria dos registros da tabela, não há benefício em usar o índice. Se as estatísticas mostrarem que o valor de pesquisa existir em alguns registros de tabela, é benéfico usar o índice para tornar a pesquisa mais rápida. O MySQL pode forçar o índice quando o otimizador de consulta ignora o índice.

Sintaxe:

A sintaxe do índice de força é dada abaixo.

Selecione *
De table_name
Índice de Força (index_list)
Onde condição;

Aqui, o index_list conterá um ou mais nomes de colunas da tabela_name usados ​​para pesquisar.

Pré-requisitos:

Você precisa criar uma tabela de banco de dados com dados em um banco de dados MySQL para verificar o recurso de índice de força do MySQL. Abra o terminal e conecte -se ao servidor MySQL executando o seguinte comando.

$ sudo mysql -u root

Execute o seguinte comando para criar um banco de dados nomeado test_db.

Criar banco de dados test_db;

Execute o seguinte comando para selecionar o banco de dados.

Use test_db;

Execute a seguinte consulta para criar uma tabela chamada funcionários com cinco campos.

Criar tabela 'funcionários' (
'id' int (11) Auto_incrent,
'Nome' Varchar (50) não nulo,
'post' varchar (25) não nulo,
Data de 'ingressamento' não nula,
'salário' não nulo,
Chave primária (id));

Execute a seguinte consulta de inserção para adicionar seis valores na tabela de funcionários.

Insira em 'funcionários' ('id', 'nome', 'post', 'junção_date', 'salary') valores
(Null, 'Nur Jahan', 'Gerente Assistente', '2021-01-05', 78000),
(Null, 'asif iqbal', 'gerente', '2019-03-20', 56000),
(Null, 'Jafar Iqbal', 'Gerente Assistente', '2021-12-31', '60000'),
(Null, 'Sefali Akter', 'Oficial de Marketing', '2022-01-01', '65000'),
(Null, 'Apurbo Chowdhury', 'CEO', '2013-05-15', '350000'),
(Null, 'Nirob Hasan', 'Gerente', '2019-12-18', '58000');

Exemplo 1: verifique o índice padrão

Quando uma tabela é criada, a chave primária será definida como um índice por padrão. Execute o seguinte comando para verificar a lista atual de índice dos funcionários.

Mostrar índices de funcionários;

Saída:

A saída a seguir aparecerá após a execução da consulta acima. A saída mostra que o Btree o índice foi atribuído para o eu ia campo do funcionários mesa.

Se nenhum índice for atribuído para o salário campo do funcionários Tabela Após criar a tabela, todos os registros da tabela serão digitalizados pelo otimizador de consulta para a seguinte consulta. O Explicar A palavra -chave é usada aqui para obter as informações de execução da consulta selecionada.

Explique selecionado * dos funcionários
Onde salário> = 60000;

Saída:

A saída a seguir aparecerá após a execução da consulta acima. A saída mostra que todas as linhas foram obrigadas a executar os dados de consulta e filtrar do funcionários mesa.

Exemplo 2: Verifique a execução da consulta após criar o índice

Você tem que definir o índice para o salário campo do funcionários tabela para otimizar a consulta corretamente. Execute a seguinte consulta para criar o índice para o salário campo do funcionário mesa.

Criar índice index_salary nos funcionários (salário);

Execute o seguinte comando novamente para verificar o status atual do índice da tabela de funcionários.

Mostrar índices de funcionários;

Saída:

A saída a seguir aparecerá após a execução do comando acima. A saída mostra que existem dois índices de Btree agora na tabela de funcionários.

Execute a consulta Select anterior novamente para verificar as informações de execução da consulta. A saída da declaração de explicação pode não ser precisa para a tabela contendo poucos registros ou pode variar para diferentes execuções. É melhor adicionar grandes registros à tabela para obter o resultado aproximadamente correto.

Explique selecionado * dos funcionários
Onde salário> = 60000;

Saída:

A saída a seguir aparecerá após a execução da consulta acima. A saída mostra que 4 linhas foram necessárias para executar a consulta e filtrar os dados do funcionários mesa. De acordo com a saída, o tempo de execução da consulta é 0.04 segundos que acessaram 4 linhas para obter a saída.

Exemplo 3: Verifique a execução da consulta após o uso do índice de força

O otimizador de consulta usará o índice definido ou não que depende da condição da consulta, do número de registros da consulta e do número de linhas correspondentes da tabela com base na condição.

Execute a seguinte consulta para forçar o otimizador de consulta a usar o index_salary Índice no momento da execução de consulta. O Índice de Força A declaração é usada antes da cláusula onde a consulta selecionada para forçar o otimizador de consulta a usar o index_salary índice.

Explique selecionado * dos funcionários
Índice de Força (index_salary)
Onde salário> = 60000;

Saída:

A saída a seguir aparecerá após a execução da consulta acima. A saída mostra que 4 linhas foram necessárias para executar a consulta e filtrar os dados do funcionários mesa. De acordo com a saída, o tempo de execução da consulta é 0.00 segundos que acessaram 4 linhas para obter a saída. Esta saída também pode variar para diferentes execuções.

Conclusão:

O recurso de índice de força do MySQL é útil ao pesquisar o valor específico em uma tabela que contém um grande número de registros. A maneira de criar um índice para uma tabela e forçar o otimizador de consulta a usar esse índice com força no momento da execução da consulta usando a instrução Force Index foi mostrada neste tutorial.