Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eduardo Barros_90473

Count mais eficaz.

Recommended Posts

Bom dia senhores,

 

possuo a seguinte query:

$consulta = "Select UF, Count(DOC) AS total From enderecos where UF !='' group by UF";

 

funciona perfeitamente em um banco de dados pequena, só que o problema é que tenho um banco com 30 milhões de registros e uma consulta simples e direta dessa esta demorando muito, o que posso fazer para deixar isso mais rápido?

 

Essa consulta demorou aproximadamente 6.5 minutos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente acho q seja mais adequado à area de Banco de Dados MySQL mas vamos lah...

 

Amigo você precisa realmente de todos estes resultados?

Digo, você faz essa consulta e imprime todos os resultados na tela?

você disse que tem 30 milhões de registros, uma query tão genérica como esta deve trazer muitos dados, e talvez a lentidão não seja na procura e sim no transporte das informações.

Tente dividir essa pesquisa, algo como LIMIT(0,99) e depois LIMIT (100,199) e assim por diante, você iria reduzir drasticamente o fluxo de dados, ou seja, crie páginas para o usuario pesquisas, ou aumente o número de parametros passados para diminuir a quantidade de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na realidade eu preciso para informar ao usuário quantos contatos ha por região e por cidade, estava pensando em realizar essa consulta uma única vez e guardar a variáveis resultantes ( total + estado ) em um outro banco para simplificar.

Compartilhar este post


Link para o post
Compartilhar em outros sites
estava pensando em realizar essa consulta uma única vez e guardar a variáveis resultantes ( total + estado ) em um outro banco para simplificar.

exatamente o ue deve ser feito..

 

faça no momento em que é adicionado novo registro ou modificado..

aroveite e crie outros caches para consultas comuns ou constantes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.