Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Informática para Internet / Banco de Dados / Aula
Visto que é possível realizar uma pesquisa, como, por exemplo, o nome dos produtos que já foram vendidos, usando uma consulta com subconsulta ou com conexão, você saberia dizer qual é a melhor estratégia?
De uma maneira geral, consultas usando conexões são mais eficientes que consultas com subconsultas, pois o Query Optimizer (mecanismo interno do SGBD que otimiza as instruções enviadas para o banco de dados) pode executar algumas operações a mais quando se utiliza uma subconsulta degradando assim a performance da execução. Ou seja, uma consulta com subconsulta pode ser mais demorada do que uma consulta com conexão. Entretanto, as consultas com subconsultas são apropriadas para pesquisas que envolvam comparações com agregações, como a consulta a seguir:
mysql> SELECT prod_nome
FROM produtos
WHERE prod_preco = (SELECT MAX(prod_preco) FROM produtos);
Nessa consulta, a instrução SELECT mais interna retorna o preço máximo dos produtos da tabela PRODUTOS, através da função de agregação MAX(). A seguir, esse valor é comparado com todos os produtos e somente aqueles que possuírem o prod_preco com valor máximo serão retornados pela consulta mais externa. A resposta do SGBD a essa consulta é ilustrada na Figura 6.
Versão 5.3 - Todos os Direitos reservados