Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

diokhan

query muito lenta

Recommended Posts

diokhan

boas,

eu tenho um problema, eu tenho uma query na minha página que é para a parte da pesquisa, mas demora muito tempo para devolver resultados, é quase 30segundos de espera, já experimentei correr a query no phpmyadmin e demorou 0.9segundos a devolver os resultados, logo pude concluir que o problema não é da query, mas também não sei o que esta a atrasar a devolução dos resultados.

na query uso MATCH () AGAINST (), e os campos são índices

há alguma forma de alterar o tempo de espera ou assim das querys? :D


...Join the dark side...and get a free cookie...

Share this post


Link to post
Share on other sites
M6

Mede os tempos de ligação à base de dados, de execução da query e de construção dos resultados para apresentar ao utilizador.

Como dizes, o problema pode não estar na query, por isso antes de mexeres na mesma, tens de identificar qual a verdadeira causa da lentidão.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
diokhan

e como posso medir o tempo de ligação, de execução e da construção dos resultados? há algum script em especifico?

a query não esta feita de base, basicamente, para pesquisar tenho 5 campos, e conforme o numero de campos que é preenchido que crio a query, tipo por exemplo, eu verifico se os campos estão preenchidos e depois adiciono os inner join os match against e assim para cada situação, porque cada campo vai buscar dados a uma tabela diferente, mas são informações interligadas, pode ser da query ser construída assim que a deixa lenta?


...Join the dark side...and get a free cookie...

Share this post


Link to post
Share on other sites
M6

Vamos por partes.

Pelo que contas o teste fizeste para ver a velocidade da query afinal não vale de muito, a não ser que tenhas feito exactamente a mesma query. Mas atenção que se correste a mesma query na tua aplicação e depois no phpmyadmin, o resultado provavelmente foi influenciado devido ao facto dos dados estarem em cache.

Quando à medição é simples de fazer, basta que mostres o tempo antes e depois de cada uma da operações (ou guardas numa variável e mostras o diferencial) ficas logo a saber quanto tempo demorou cada uma das partes.

Quanto à construção da query a resposta é: sim. Dado que a tua query é dinâmica, o plano de acesso aos dados muito provavelmente será diferente para cada uma das variantes/hipóteses. Mas não vale a pena mexeres na query, nem em qualquer lado, sem saberes de onde vem o problema.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
diokhan

ok, eu vou ver se descubro o problema, obrigado pela dica, qualquer coisa eu coloco aqui as minhas duvidas ou solução se encontrar :D


...Join the dark side...and get a free cookie...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.