0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Что делать если ваш сайт тупит и не грузится? В первую очередь, следует проверить запросы к базе данных. Сделать это в<strong>Laravel</strong>можно просто и изящно.</p>
1
<p>Что делать если ваш сайт тупит и не грузится? В первую очередь, следует проверить запросы к базе данных. Сделать это в<strong>Laravel</strong>можно просто и изящно.</p>
2
<p>Безусловно, работа сайта зависит от множества причин, но чаще всего проблемы связаны с запросами данных. Дело в том, что при использовании Laravel, как правило, SQL напрямую для получения данных не применяется, так как всё, по сути, оборачивается в Eloquent ORM и конструктор запросов. Это, в свою очередь, не позволяет с высокой степенью точности определить, какой конкретно запрос "подвешивает" веб-сайт.</p>
2
<p>Безусловно, работа сайта зависит от множества причин, но чаще всего проблемы связаны с запросами данных. Дело в том, что при использовании Laravel, как правило, SQL напрямую для получения данных не применяется, так как всё, по сути, оборачивается в Eloquent ORM и конструктор запросов. Это, в свою очередь, не позволяет с высокой степенью точности определить, какой конкретно запрос "подвешивает" веб-сайт.</p>
3
<h2>DB::listen()</h2>
3
<h2>DB::listen()</h2>
4
<p>Однако вопрос решаем. У нас есть возможность задать колбэк, который станет вызываться каждый раз в случае выполнения запроса к БД (подробности<a>тут</a>).</p>
4
<p>Однако вопрос решаем. У нас есть возможность задать колбэк, который станет вызываться каждый раз в случае выполнения запроса к БД (подробности<a>тут</a>).</p>
5
<p>Итак, давайте добавим определенный код в сервис-провайдер (к примеру, в<strong>AppServiceProvider</strong>):</p>
5
<p>Итак, давайте добавим определенный код в сервис-провайдер (к примеру, в<strong>AppServiceProvider</strong>):</p>
6
<p>В результате мы получили переменную<strong>$query</strong>, которая представляет собой экземпляр класса<strong><a>QueryExecuted</a></strong>. Эта переменная даст возможность получить необходимую нам дополнительную информацию о выполненном запросе:</p>
6
<p>В результате мы получили переменную<strong>$query</strong>, которая представляет собой экземпляр класса<strong><a>QueryExecuted</a></strong>. Эта переменная даст возможность получить необходимую нам дополнительную информацию о выполненном запросе:</p>
7
<p>Таким образом, используя<strong>$query->time</strong>, мы отследим медленные запросы.</p>
7
<p>Таким образом, используя<strong>$query->time</strong>, мы отследим медленные запросы.</p>
8
<p><em>Источник: https://laravel.io/articles/how-to-find-the-slowest-query-in-your-application.</em></p>
8
<p><em>Источник: https://laravel.io/articles/how-to-find-the-slowest-query-in-your-application.</em></p>
9
9