Ir para conteúdo

Arquivado

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

bichopapo

Qual dessas consultas é mais rápida e deixa o código mais leve?

Recommended Posts

Olá pessoal,

 

Estou trabalhando em um código que as vezes gera muita consulta ao banco de dados. Então surgiu uma dúvida, o que é mais rápido e melhor para o código?

 

1. Fazer uma consulta no banco, pegando todos os valores que preciso, colocar esses valores em um array e depois mostrar os valores chamando esse array

 

2. Toda vez que precisar de um valor específico, buscar direto no banco de dados

 

Vou tentar explicar um pouco mais

 

 

Aluno **** Nota **** Falta

 

José ***** 50 **** 3

Maria ***** 50 **** 4

Robert **** 35 ***** 1

Marta **** 45 **** 0

 

Vamos lá então

 

A tabela nota é uma e a tabela faltas é outra

 

Nesse caso o que é melhor?

1. uma unica consulta usando join e todas as tabelas, depois colocar me um array e mostrar os valores

1. consulto tabela aluno e coloco em um array. Consulto tabela nota e coloco em um array usando o codigo do aluno como indice. consulto tabela notas e coloco em um array também usando o código do aluno como índice. Depois mostro os alunos e atraves do codigo do aluno mostro o array nota e o array faltas.

2. uma consulta na tabela alunos e depois, a cada linha uma consulta na tabela notas, usando o where pelo código do aluno e também uma consulta na tabela faltas, usando também where.

3. consultar aluno e nota com um join, e depois, a cada linha uma consulta na tabela faltas usando o where pelo código do aluno

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vc pode tirar essa conclusão medindo o tempo que cada uma dessas alternativas leva para completar o trabalho.

 

Eu apostaria no JOIN como opção mais limpa e rápida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro passa pelo tamanho das tabelas no BD se estas tem índices e se as estatísticas estão atualizadas.

 

Mas a trabalheira de juntar estes dados em memória não compensa um eventual ganho , JOIN existe e está testado, ao menos na minha modesta opinião.

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.