Essa pergunta eu me fiz logo quando estava estudando o Laravel Framework. Na ocasião, estava impressionado com toda a “magia” do Eloquent.
<?php
$users = User::where('name', "Jansen Felipe")->get();
// O código acima executa a seguinte instrução SQL:
// select * from `users` where name = "Jansen Felipe"
O Eloquent incluído no Laravel fornece uma implementação ActiveRecord bonita e simples para trabalhar com seu banco de dados.
*Documentação do Laravel Framework*
Eu sou de total acordo. O Eloquent é uma mão na roda e acelera bastante o desenvolvimento daquele MVP que você tem que publicar sexta-feira rsrs..
Acontece que, no caso de sucesso, é bem possível que seu banco de dados cresça e seu sistema comece a ficar lento. (um “bom” problema né?)
Em todos os casos de lentidão que eu já trabalhei, a maioria estava relacionada a performance no banco de dados. E como ver as queries executadas, uma vez que elas estão encapsuladas no framework? Tem várias formas. Cito alguma delas:
Uma forma é acessar o servidor MySQL (por exemplo) e executar o comando “show processlist”.
Outra forma é realizar o debug da aplicação chamando o método “toSql()”
Outra forma é utilizando o package https://github.com/supliu/laravel-query-monitor
Laravel Query Monitor
Esse pacote foi criado como uma ferramenta de suporte ao desenvolvedor. Através do terminal, você executa o comando “php artisan laravel-query-monitor” e a partir de então, todas as queries executadas na sua aplicação irá aparecer em tempo real no terminal.
Para desenvolver o pacote, utilizamos o React PHP para abrir o serviço de escuta de queries no terminal. O envio das queries é realizado utilizando o método DB::listen conforme especificado na documentação do Laravel https://laravel.com/docs/7.x/database#listening-for-query-events
Se você quer utilizar o pacote, basta fazer a instalação utilizando o composer:
$ composer require --dev supliu/laravel-query-monitor
$ php artisan vendor:publish --
provider="Supliu\LaravelQueryMonitor\ServiceProvider"
O código do pacote é aberto e publicado sob a licença MIT. Então, fique a vontade para copiar, usar e aprimorar! Segue o link do repositório no GitHub https://github.com/supliu/laravel-query-monitor
Dúvidas, críticas ou sugestões? Fique a vontade nos comentários!
** Esse artigo foi originalmente publicado em *https://supliu.com.br/2020/04/29/laravel-query-monitor-como-ver-queries-e-executadas-pelo-eloquent/
Top comments (0)