Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

INNER JOIN + GROUP BY

Olá pessoal, a pergunta do exercício era se existe uma outra forma de obter aquele mesmo resultado, mesmo sem usar o exists. Eu executei desta forma:

select aluno.nome from aluno inner join matricula on aluno.id = matricula.aluno_id AND matricula.data < now() - interval 45 day group by aluno.id;

O resultado foi o mesmo. Estaria errado ?

4 respostas

A resposta rápida é: Não. Diego, em desenvolvimento você se encontrará resolvendo diversos problemas de formas diferentes, é natural, não existe o que se chama de errado, desde que o resultado final seja o mesmo, porém, existe a melhor solução.

A melhor solução não será sempre a primeira em mente e ela envolverá diversos outros fatores além de resolver o problema. Elementos como: Uma solução é mais rápida que outra? Ela consome mais ou menos recursos da maquina? etc...

Entende? Espero ter ajudado, bons estudos!

Perfeito Wanderson !

Só mais uma dúvida: existe alguma ferramenta ou forma na qual eu possa avaliar a performance da minha query ? Uma espécie de "scanner" onde verifica ONDE e COMO eu poderia melhorar aquela consulta. Existe esse tipo de ferramenta?

Obrigado.

solução!

Diego, o próprio terminal exibe o tempo de execução da querie, voce pode utilizar esses "IDE" como MySQL Workbench que deve ter nele algumas ferramentas que possam servir pra esse próposito.

Pensar em performance em banco de dados inicialmente não é comum ao meu ver, a não ser que você queria se especializar nisso. No geral, a performance das consultas só são avaliadas quando a aplicação já está em execução, funcionando, neste estágio é que começam as preocupações de melhoria. Otimização já no inicio do projeto não é uma boa prática.

Pra saber mais, dá uma olhada http://www.mysql.com/products/workbench/

Beleza ! na verdade, estou fazendo uma revisão geral...quero aprender todas as etapas dos projetos, seja na entrada de dados, na segurança, no consumo, na gestão e otimização de todas estas informações, diferença entre programações, bancos, etc.

Mas beleza! Vou seguir o seu conselho e dar uma olhada no material ali. Abraço.