최신판 |
당신의 편집 |
279번째 줄: |
279번째 줄: |
|
| |
|
| ===누락 쿼리 시간 모니터링=== | | ===누락 쿼리 시간 모니터링=== |
| 현대 웹 애플리케이션의 일반적인 성능 병목 현상 중 하나는 데이터베이스를 쿼리하는 데 소요되는 시간입니다. 다행히도, Laravel은 단일 요청 중 데이터베이스 쿼리에 너무 많은 시간이 소요될 때 선택한 클로저 또는 콜백을 호출할 수 있습니다. 시작하려면, <code>whenQueryingForLongerThan</code> 메소드에 쿼리 시간 임계값(밀리초 단위)과 클로저를 제공하면 됩니다. 이 메소드는 서비스 제공자의 <code>boot</code> 메소드에서 호출할 수 있습니다:
| |
|
| |
| <syntaxhighlight lang='php'>
| |
| <?php
| |
|
| |
| namespace App\Providers;
| |
|
| |
| use Illuminate\Database\Connection;
| |
| use Illuminate\Support\Facades\DB;
| |
| use Illuminate\Support\ServiceProvider;
| |
| use Illuminate\Database\Events.QueryExecuted;
| |
|
| |
| class AppServiceProvider extends ServiceProvider
| |
| {
| |
| /**
| |
| * 모든 애플리케이션 서비스를 등록합니다.
| |
| */
| |
| public function register(): void
| |
| {
| |
| // ...
| |
| }
| |
|
| |
| /**
| |
| * 모든 애플리케이션 서비스를 부트스트랩합니다.
| |
| */
| |
| public function boot(): void
| |
| {
| |
| DB::whenQueryingForLongerThan(500, function (Connection $connection, QueryExecuted $event) {
| |
| // 개발 팀에 알림...
| |
| });
| |
| }
| |
| }
| |
| </syntaxhighlight>
| |
|
| |
|
| ==데이터베이스 트랜잭션== | | ==데이터베이스 트랜잭션== |