Resumo : neste tutorial, você aprenderá como usar a ANALYZE TABLE
instruçã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 inserir , excluir 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 TABLE
instrução que atualiza essas estatísticas, garantindo que o otimizador de consultas tenha informações precisas para um planejamento eficiente de consultas.
A ANALYZE TABLE
instruçã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 TABLE
instrução funciona apenas com tabelas InnoDB
, NDB
e .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 root
conta:
mysql -u root -p
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Ele solicitará que você insira uma senha para a root
conta.
Segundo, mude o banco de dados atual para classicmodels
:
use classicmodels;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, analise a customers
tabela:
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
TABLE
para garantir que o otimizador de consulta tenha estatísticas de tabela precisas e atualizadas, permitindo gerar planos de execução de consulta ideais.