Instrução MySQL ANALYZE TABLE

Resumo : neste tutorial, você aprenderá como usar a ANALYZE TABLEinstrução MySQL para garantir que o otimizador de consulta tenha estatísticas de tabela precisas e atualizadas.

Introdução à instrução MySQL ANALYZE TABLE

No MySQL, o otimizador de consulta depende de estatísticas de tabela para otimizar os planos de execução de consulta.

As estatísticas da tabela ajudam o otimizador de consulta a estimar o número de linhas em uma tabela que satisfaz uma condição específica.

No entanto, às vezes as estatísticas da tabela podem ser imprecisas. Por exemplo, depois de fazer muitas alterações nos dados da tabela, como inserirexcluir ou  atualizar .

Se as estatísticas da tabela não forem precisas, o otimizador de consulta poderá escolher um plano de execução de consulta não ideal que poderá causar um grave problema de desempenho.

Para resolver esse problema, o MySQL fornece a ANALYZE TABLEinstrução que atualiza essas estatísticas, garantindo que o otimizador de consultas tenha informações precisas para um planejamento eficiente de consultas.

A ANALYZE TABLEinstrução a seguir realiza uma análise de distribuição de chaves:

ANALYZE TABLE table_name [, table_name];Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • table_name: o nome da tabela que você deseja analisar. Se quiser analisar várias tabelas, separe-as por vírgulas.

Esta análise de distribuição de chaves é essencial para compreender a distribuição dos valores-chave na tabela. O otimizador de consulta usa os resultados desta instrução para otimizar as operações de junção e o uso do índice.

A ANANLYZE TABLEinstrução funciona apenas com tabelas InnoDB, NDBe .MyISAM

Exemplo de instrução MySQL ANALYZE TABLE

Usaremos a tabela do banco de dados de exemplo para a demonstração.

Primeiro, faça login no servidor MySQL usando a rootconta:

mysql -u root -pLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Ele solicitará que você insira uma senha para a rootconta.

Segundo, mude o banco de dados atual para classicmodels:

use classicmodels;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, analise a customerstabela:

analyze table customers;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-------------------------+---------+----------+----------+
| Table                   | Op      | Msg_type | Msg_text |
+-------------------------+---------+----------+----------+
| classicmodels.customers | analyze | status   | OK       |
+-------------------------+---------+----------+----------+
1 row in set (0.01 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A tabela de saída possui as seguintes colunas:

  • Table: o nome da tabela que foi analisada.
  • op: analisar ou histograma.
  • Msg_type: mostra o tipo de mensagem, incluindo status, erro, informações, nota ou aviso.
  • Msg_text: uma mensagem informativa.

Resumo

  • Use a instrução MySQL ANALYZE TABLEpara garantir que o otimizador de consulta tenha estatísticas de tabela precisas e atualizadas, permitindo gerar planos de execução de consulta ideais.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *