Como corrigir as queries lentas do JetEngine no banco de dados
Perguntas frequentes
Por que o Listing Grid do JetEngine ficou lento de repente?
Quase sempre a query por tras dele passou a filtrar por mais campos de Meta Query, teve o Cache Query desligado, ou a tabela cresceu e o banco passou a varrer mais linhas. Abra o Query Monitor na página lenta, identifique a consulta do JetEngine entre as mais lentas e confirme se ela faz JOIN pesado na wp_postmeta.
O que e o Cache Query no Query Builder do JetEngine?
E um switcher das configurações da query, ligado por padrão, que faz o JetEngine guardar o resultado e reaproveita-lo em vez de refazer a consulta a cada carregamento. A própria documentação recomenda desliga-lo apenas quando ha problemas com o resultado da query. Mante-lo ligado costuma reduzir bastante o tempo de resposta.
Por que a Meta Query do JetEngine deixa a consulta lenta?
Cada condicao de Meta Query adiciona um JOIN na tabela wp_postmeta, que não tem indice na coluna meta_value. Com várias condicoes e muitos posts, o MySQL precisa varrer milhares de linhas por requisicao. Reduzir o número de filtros de metadado e limitar os itens por página diminui o trabalho do banco.
Como descubro qual query do JetEngine esta pesando no banco?
Use o Query Monitor para ver as consultas mais lentas da página e ligue o slow query log do MySQL para registrar as que passam do tempo limite. Depois rode um EXPLAIN sobre a consulta: se o plano mostrar type ALL e muitas linhas lidas, o banco esta fazendo varredura completa por falta de indice.
Criar indice resolve a query lenta de uma SQL Query?
Resolve quando o EXPLAIN aponta varredura completa numa coluna usada no filtro ou na ordenacao. Um indice nessa coluna deixa o MySQL achar as linhas direto, em vez de ler a tabela inteira. Faca com backup, porque criar indice em tabela grande bloqueia a gravacao por alguns instantes.
O cache de objetos ajuda nas queries do JetEngine?
Ajuda bastante. Com Redis ou Memcached ativos, o resultado da query do Query Builder fica em memória e e servido sem bater no banco a cada visita, reduzindo o tempo de resposta nas páginas com Listing Grid. Ainda assim, convem enxugar a Meta Query, porque o cache guarda o que for pedido, inclusive a consulta pesada.
Posso resolver tudo pelo painel ou preciso mexer no banco?
Boa parte resolve pelo painel: ligar o Cache Query, reduzir a Meta Query, baixar o Posts Per Page e ativar o cache de objetos. So e preciso ir ao banco para ligar o slow query log, rodar o EXPLAIN e criar indice quando a query e do tipo SQL Query sobre uma tabela própria com varredura completa.














