Ir para conteúdo

POWERED BY:

Arquivado

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

alissonxx

Queries Lentas

Recommended Posts

estou com um problema devido ao número de registros nas tabelas do banco de dados,

 

SELECT USuario,Inicio,Entrada,Saida,Parada,SUM(Entrada),SUM(Saida),SUM(Tempo) FROM utilizacao WHERE Inicio BETWEEN '$datainicial' AND '$datafinal' AND computador='$computador' GROUP BY Usuario ORDER BY SUM(saida) DESC

 

e o valor só é retornado depois de mais de 5 ou 10 minutos,

 

testei a tabela como MyIsam e depois como InnoDb, MyIsam foi mais rapido

 

alguem poderia me dar alguma dica para esas query?

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque a engine da tabela como MyISAM, caso você não precise de chaves estranegiras, transações e outros recursos que MyISAM não dispõe.

Realmente MyISAM é mais rápida que InnoDB, entretando, pelo que eu sei, InnoDB leva uma vantagem com grandes quantidades de dados.

 

Eu não sei qual o propósito da sua consulta, vamos supor que esteja correta a forma com que você está fazendo.

Então te pergunto, existe algum índice, nessa tabela?

 

Se não existir, experimente criar os seguintes:

 

índice do campo INICIO e COMPUTADOR (os dois campos no mesmo índice)

índice do campo USUARIO

índice do campo SAIDA

 

experimente e teste um de cada vez e juntos para ver se ajuda na performance.

 

Lembrando que os tipos de dados podem influenciar na performance também.

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.