Ir para conteúdo
Fórum Script Brasil
  • 0

Demora para retornar resultado da query


Guest Bruno Fernandes

Pergunta

Guest Bruno Fernandes

Ola a todos.

Antigamente eu usava a seguinte estrutura

Eu criava uma query para buscar os classificados do meu site, com o retorno eu criava outa query para pegar o modelo do carro e depois criava uma terceira query para trazer a foto do carro. O site comecou a ficar lento e me informaram que eu poderia otimizar a busca com inner join assim poderia trazer todos dados em uma unica busca. Eu fiz isso so que a query ainda esta demorando. Gostaria de saber o que posso fazer para melhorar

Segue a query abaixo

Select c.idc, c.veiculo, c.modelo, c.preço, c.foto, c.exibir, v.veiculo

from classificados c

inner join veiculos v on c.veiculo=v.idv

#inner join albumclassificados a on a.idc=c.idc

where c.foto='s' and c.exibir='s' group by c.idc order by c.idc Desc limit 4

Podem percerber que tem uma linha comentada. com esa linah comentada eu apenas busco alguams informacoes do classificado e vou buscar o modelso do veiculo em outra tabela. Essa busca me traz o resultado instantaneo, o problema é quando eu acresncento a linah comentada que é onde vou na tabela de fotos buscar a foto do carro, essa busca demora muito, sem ela aquery é executada em bem menso de um segundo, com ela, chega a demorar 15 segundos.

O que devo fazer?

Att

Bruno Fernandes

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Ola a todos.

Antigamente eu usava a seguinte estrutura

Eu criava uma query para buscar os classificados do meu site, com o retorno eu criava outa query para pegar o modelo do carro e depois criava uma terceira query para trazer a foto do carro. O site comecou a ficar lento e me informaram que eu poderia otimizar a busca com inner join assim poderia trazer todos dados em uma unica busca. Eu fiz isso so que a query ainda esta demorando. Gostaria de saber o que posso fazer para melhorar

Segue a query abaixo

Select c.idc, c.veiculo, c.modelo, c.preço, c.foto, c.exibir, v.veiculo

from classificados c

inner join veiculos v on c.veiculo=v.idv

#inner join albumclassificados a on a.idc=c.idc

where c.foto='s' and c.exibir='s' group by c.idc order by c.idc Desc limit 4

Podem percerber que tem uma linha comentada. com esa linah comentada eu apenas busco alguams informacoes do classificado e vou buscar o modelso do veiculo em outra tabela. Essa busca me traz o resultado instantaneo, o problema é quando eu acresncento a linah comentada que é onde vou na tabela de fotos buscar a foto do carro, essa busca demora muito, sem ela aquery é executada em bem menso de um segundo, com ela, chega a demorar 15 segundos.

O que devo fazer?

Att

Bruno Fernandes

Oi, Bruno!

Como já comnetei aqui algumas vezes, a chave mágica para a melhora de performance é o índice.

Verifique se há indices para os seguintes tabelas/campos:

classificados.veiculo

veiculos.idv

albumclassificados.idc

classificados.idc (indice descendente)

classificados.idc (indice ascendente)

Só para que voce tenha uma idéia, se não há indices e se cada tabela tiver 1000 registros, por exemplo, então o MySQL faria uma pesquisa de 1000 x 1000 x 1000 (1 bilhão de registros) para encontrar o que você necessita, fora o tempo de classificação com GROUP BY e o tempo de ordenação com ORDER BY

Demorado né?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...