Como otimizar consulta SQL usando EXPLAIN Print

  • 0

Como otimizar consulta SQL usando EXPLAIN — Guia do Sensei da GeHost

Olá, amigo(a) desenvolvedor(a)! Seja muito bem-vindo(a) ao nosso canto de aprendizado. Hoje, vamos aprender uma técnica poderosa que vai deixar suas consultas no banco de dados mais rápidas, mais eficientes e muito mais amigáveis com o servidor. Vamos falar de EXPLAIN — o superpoder do SQL para entender como o banco de dados está lidando com suas consultas.

Imagine que você está tentando encontrar um amigo em uma cidade enorme. Se você só olhar por acaso, pode levar horas. Mas se tiver um mapa com direções claras, achar ele será fácil e rápido. É exatamente isso que o EXPLAIN faz: ele te dá o mapa do que o banco de dados está fazendo por trás das cortinas.

Dica do Sensei: Sempre que uma página está lenta, antes de pensar em mudar o servidor, verifique se a consulta SQL está mal otimizada. Muitas vezes, é só uma linha de código mal escrita.

Passo a passo: Como usar EXPLAIN no seu banco de dados MySQL

Para seguir comigo, vamos usar o phpMyAdmin, que está disponível diretamente no cPanel da GeHost. É uma ferramenta simples, poderosa e feita para quem quer entender o que está acontecendo com os dados.

  1. Entre no cPanel com suas credenciais. Se você ainda não tem acesso, entre em contato com nosso suporte — estamos aqui para te ajudar.Tela de LOGIN do cPanel (campos Usuário e Senha + botão Log in)
  2. Na tela principal do cPanel, encontre a seção Bancos de Dados e clique em phpMyAdmin.Painel inicial (home) do cPanel com os grupos de ferramentas (E-mail, Arquivos etc.)
  3. Na página do phpMyAdmin, selecione o banco de dados que você quer analisar na lista à esquerda.
  4. Na barra superior, clique na aba SQL.
  5. Escreva sua consulta SQL. Por exemplo:
SELECT * FROM usuarios WHERE nome LIKE '%joão%';
Antes de executar a consulta, adicione o comando EXPLAIN no início. Ficará assim:
EXPLAIN SELECT * FROM usuarios WHERE nome LIKE '%joão%';
Clique em Executar (ou pressione Enter).

O que o EXPLAIN mostra? Entendendo os resultados

Depois de rodar o comando, você verá uma tabela com várias colunas. Vamos entender cada uma delas com um olhar de mestre:

  • id: O número da consulta (geralmente 1).
  • select_type: Tipo de seleção. PRIMARY é uma consulta principal; DERIVED é uma subconsulta.
  • table: Qual tabela está sendo consultada.
  • type: O tipo de acesso. ALL é o pior (leitura de toda a tabela). index ou range são melhores. const ou eq_ref são os melhores.
  • possible_keys: Chaves que poderiam ser usadas.
  • key: Chave real usada.
  • key_len: Tamanho da chave usada.
  • ref: Qual coluna está sendo usada para comparação.
  • rows: Quantas linhas o banco precisa verificar.
  • Extra: Informações extras. Cuidado com Using temporary ou Using filesort — são sinais de otimização necessária.

Dica do Sensei: Se você ver type: ALL ou rows: grande número, sua consulta está lendo todas as linhas. Isso é como procurar um nome em uma lista de 100.000 pessoas sem índice. Precisa de um índice!

Como melhorar sua consulta: dicas práticas

Com base no que o EXPLAIN mostrou, aqui estão ações que você pode tomar:

  • Crie índices em colunas usadas em WHERE, JOIN ou ORDER BY. Por exemplo:
CREATE INDEX idx_nome ON usuarios(nome);
Evite LIKE '%termo%' — ele não usa índice. Prefira LIKE 'termo%' (começa com). Evite SELECT * — selecione apenas as colunas que você precisa. Use EXPLAIN sempre que fizer uma nova consulta — é o seu escudo contra lentidão.

Prática comum: um exemplo real

Imagine uma consulta assim:

EXPLAIN SELECT * FROM pedidos WHERE data_pedido BETWEEN '2024-01-01' AND '2024-12-31';

Se o EXPLAIN mostrar type: ALL e rows: 100000, isso significa que o banco está lendo todos os pedidos. A solução? Crie um índice na coluna data_pedido:

CREATE INDEX idx_data_pedido ON pedidos(data_pedido);

Depois disso, rode o EXPLAIN novamente. Você vai ver uma diferença enorme: type: range e rows: 345. Pronto! Agora o banco só lê o que importa.

Conclusão: o poder está na visão

Usar EXPLAIN é como ganhar visão noturna no mundo do banco de dados. Você deixa de adivinhar e começa a entender o que está acontecendo.

Seu site vai ficar mais rápido. Seu servidor vai respirar mais leve. E você, como desenvolvedor, vai se sentir mais poderoso — como um verdadeiro Senhor do SQL.

Se precisar de ajuda para interpretar os resultados ou criar índices, nosso suporte está aqui. Basta nos chamar — estamos sempre prontos para ajudar.

Até a próxima, com código limpo e coração leve.

Com carinho,
O Sensei da GeHost


Was this answer helpful?

« Back