Pular para o conteúdo principal
Documentos
FunçõesExpressõesKeywordsDeclaraçõesCláusulas

Palavra-chave MySQL EXPLAIN

A palavra-chave `EXPLAIN` no MySQL é usada para obter informações sobre como uma instrução `SELECT`, `INSERT`, `UPDATE` ou `DELETE` é executada. Ele fornece insights sobre o plano de execução da consulta, ajudando os desenvolvedores a otimizar as consultas ao banco de dados.

Uso

A palavra-chave `EXPLAIN` é usada principalmente para diagnosticar e otimizar consultas SQL, mostrando detalhes como varreduras de tabelas e uso de índices. Ele é colocado antes de uma consulta para revelar a estratégia de execução que o MySQL usará.

EXPLAIN SELECT column1, column2, ...
FROM table_name
[WHERE condition];

Nessa sintaxe, `EXPLAIN` precede uma consulta SQL para exibir detalhes sobre como o MySQL planeja executá-la. Para consultas que não sejam do tipo `SELECT`, recomenda-se `EXPLAIN FORMAT=JSON` para que você tenha informações detalhadas.

Exemplos

1. EXPLAIN básico em uma consulta SELECT

EXPLAIN SELECT * FROM orders;

Esse exemplo fornece detalhes de execução, como o tipo de união ou uso de índice, para que você recupere todas as colunas da tabela `orders`.

2. EXPLAIN com a cláusula WHERE

EXPLAIN SELECT first_name FROM employees WHERE department_id = 5;

Aqui, `EXPLAIN` ajuda a identificar como o desempenho da consulta é influenciado pela cláusula `WHERE`, como a utilização do índice para filtragem.

3. EXPLAIN com JOIN

EXPLAIN SELECT o.order_id, c.customer_name
FROM orders o
JOIN customers c ON o.customer_id = c.customer_id
WHERE c.city = 'New York';

Este exemplo analisa uma operação `JOIN`, fornecendo informações sobre como as tabelas são vinculadas e filtradas pela condição `WHERE`.

4. EXPLAIN com INSERT, UPDATE ou DELETE

Para instruções que não sejam `SELECT`, use `EXPLAIN FORMAT=JSON` para obter informações detalhadas:

EXPLAIN FORMAT=JSON INSERT INTO archive SELECT * FROM orders WHERE order_date < '2023-01-01';
EXPLAIN FORMAT=JSON UPDATE employees SET salary = salary * 1.1 WHERE department_id = 5;
EXPLAIN FORMAT=JSON DELETE FROM orders WHERE status = 'canceled';

Colunas de saída comuns do EXPLAIN

  • id: O identificador do SELECT em uma consulta.
  • select_type: O tipo de SELECT, como SIMPLE ou PRIMARY.
  • mesa: O nome da tabela à qual a linha de saída se refere.
  • tipo: O tipo de união.
  • possible_keys: Os possíveis índices que o MySQL pode escolher.
  • chave: O índice real que o MySQL decidiu usar.
  • key_len: O comprimento da chave usada.
  • ref: As colunas ou constantes comparadas com o índice.
  • linhas: A estimativa de linhas examinadas.
  • Extra: Informações adicionais.

Dicas e práticas recomendadas

  • Verifique regularmente as consultas complexas. Use o `EXPLAIN` para analisar e otimizar consultas complexas para melhorar o desempenho.
  • Combine com `ANALYZE`. Use `ANALYZE TABLE` para atualizar as estatísticas do índice e obter resultados mais precisos do `EXPLAIN`.
  • Entenda as colunas de saída. Familiarize-se com as colunas de saída `EXPLAIN` para interpretar as informações de desempenho de forma eficaz.
  • Otimize com base nos resultados. Ajuste os índices, reescreva as consultas ou redesenhe os esquemas usando os insights do `EXPLAIN` para obter eficiência.
  • Use `EXPLAIN EXTENDED` ou `EXPLAIN FORMAT=JSON` para obter uma análise mais detalhada e adaptar as otimizações a casos de uso específicos.

Aprimoramento de SQL para iniciantes

Adquira as habilidades de SQL para interagir com seus dados e consultá-los.
Comece a aprender de graça