Ir para conteúdo

POWERED BY:

Arquivado

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

diogoico

Lentidão

Recommended Posts

Olá,

 

Eu estou fazendo um sistema e em uma das tabelas tem mais ou menos 5 milhoes de registros o que deixa query do tipo Ordenar ou Selecionar alguns registros bem lento, mais ou menos 10 segundos pra fazer a operação mas em query de tipo buscar somente um registor ele é bem rapido...

 

Tem alguma forma de deixar o sql mais rapido em relação a isso?

 

essa é a query que eu uso:

$busca = $DB->Execute("SELECT SQL_CACHE nome,telefone FROM `$tabela_nomes` ORDER BY nome ASC LIMIT $inicio, $fim");

eu estava pensando em usar cache mas acho que tb não ia adiantar muita coisa...

 

Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

talvez seja util separar as tabelas.

 

por exemplo

 

cadastros_ac

cadastros_df

cadastros_gi

...

 

a logica seria cadastros_ac "A-C" seriam gravados todos os nomes que iniciam por A, B ou C

 

fiz isso num banco de dados volumoso. o problema de lentidao comecou como o seu caso.

quando chegou no 4.600.000 comecou a ficar lento entao dividi as tabelas. Hoje os dados chegam a 17 milhoes

mas nao recomendo fazer esse tipo de tecnica com versoes inferiores ao 5 porque tera que utilizar procedures para otimizar outros tipos de operacoes, indexacoes etc..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hunn...

 

mas acho que isso não vai funcionar pra mim pois algumas querys usam outros informações alem do nome por exemplo procurar nomes com profissão engenheiro ai daria no mesmo porque ia ter que olhar em todas as tabelas de nomes...

 

Sera que tem algum outro banco de dados que consegue aguentar isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o desempenho depende da estrutura montada.

 

por exemplo, para informacoes como profissiao, escolaridade, especializacoes e outros você poderia ter criado em outras tabelas.

 

posso garantir que o MySQL aguenta o tranco. Você deve estar atento também quatno a capacidade do servidor. Processador, memória, armazenamento em disco..

 

em média, 20 milhoes de dados ainda é pouco.

 

tenho outras aplicações pequenas com 300 ~ 500 milhoes. Para esses casos tive que dividir não somente as tabelas mas também os bancos de dados. Detalhe.. usando Oracle 9i.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concordo com o que disse o amigo "giesta" e acrescento que, não somente hardware obsoleto...o seu hardware está mal dimensionado, talvez, você tenha uma memória cache de 200kb e queira colocar um conjunto de resultados retornados por uma consulta de 1MB...é como querer colocar toda a torcida do Flamengo dentro do estádio do Guarani, em Campinas. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Reveja seus conceitos, pois, como muita gente pensa, o MySQL não é apenas uma caixa mágia para se cadastrar e recuperar dados, existe otimização, configurações e muitos outros quisitos a serem analisados para otimizar consultar... não adianta martelar, tem que estudar!!

 

Forte abraço meu camarada!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.