Além disso, também acho que nos primeiros dias do aplicativo Laravel, você deve se concentrar em criar os recursos e codificação. Depois de começar a ter problemas e você realmente começa a perceber que seu aplicativo é lento, só então você deve analisar o que pode fazer para otimizar suas consultas MySQL.
99% do tempo você usará métodos eloquentes para fazer chamadas de banco de dados e, às vezes, o caminho mais fácil que você deseja seguir, aparece para causar problemas na linha.
Orm como eloqüente é simplesmente fantástico e o apoiará até o fim.
Agora imagine que você está construindo seu pedido há algum tempo e deseja refatorar algumas de suas chamadas para torná -las um pouco mais rápidas. Vamos passar por um exemplo de como você pode participar de consultas para obter o mesmo resultado, em menos tempo.
Problema
Considere um exemplo de código abaixo, que usa o Do utilizador e Organização tabela para devolver o nome de usuário.
$ user = user :: find ($ user_id);O exemplo de código acima é simples o suficiente para entender, mas usa duas chamadas separadas para o banco de dados. A segunda chamada é obviamente confiável no primeiro, portanto, precisamos esperar o primeiro terminar antes de chegarmos ao próximo.
Solução
Vamos melhorar este exemplo de código combinando ambas as solicitações em uma única consulta.
$ user_with_organization = user :: where ('id', $ user_id)Agora, o que acabamos de fazer acima?
1. Em primeiro lugar, alvejamos o usuário com base no $ user_id
, exatamente a mesma consulta que a primeira.
2. Em seguida, ingressamos nos resultados com a tabela de organizações usando a tabela de usuários, preencha a consulta de junção esquerda
3. A primeira consulta pegou o modelo de usuário que nos fornece o acesso ao organização_id
atributo.
4. Selecionamos o ID do usuário e o nome da organização.
5. Por fim, usamos o método First (), que garante que, uma vez que ele encontre uma única organização que atenda ao requisito, ele retornará o nome da organização instantaneamente.
Como a junção da esquerda funciona
Quando você tem duas consultas e deseja sair da segunda, isso significa que seu resultado final será o resultado de sua primeira consulta, onde alguns dos resultados podem receber alguma correspondência com a segunda consulta e ter alguns dados extras com eles.
É isso. Agora você tem uma melhor compreensão de como a junta à esquerda funciona. Use -o para combinar consultas relacionadas para fazer uma única solicitação ao banco de dados. Parece bastante simples, mas usar o mesmo método pode ajudá -lo a otimizar as consultas mais complexas que lidam com várias tabelas.
Se você tiver algum comentário ou sugestão, sinta -se à vontade para entrar em contato comigo.