Laravel | Veritabanı Sorgularını Analiz Etmek

29 sec read

laravel

Laravel çok geniş kapsamlı bir PHP çatısı. Bu nedenle de küçük projelerden ziyade büyük projelerde özellikle tercih edilmekte. Tabi proje büyüyünce dertleri de büyüyor. Özellikle de performansı artırmak için sistemde yapılan her veritabanı sorgusunu takip etmeniz, hesaba katmanız gerekiyor. İşte Laravel uygulamamızın yapmış olduğu bu veritabanı sorgularını laravel.log kullanarak nasıl analiz edebileceğimizi bu yazıda kısaca anlatmaya çalıştım.

Laravel Veritabanı Sorgularını İncelemek

Yukarıda bahsettiğim sorguları takip etmek içn Laravel/App/Providers klasöründerki AppServiceProvider.php dosyasına ufak bir müdahalede bulunacağız. Eğer başka herhangi bir müdahale yapmadıysanız dosyanın başlangıçtaki hali yorum satırları çıkarıldıktan sonra aşağıdaki gibidir.


Dosyayı düzenleyerek şu hale getiriyoruz.

sql,
                $query->bindings,
                $query->time
            );
        });
    }

    public function register()
    {
        //
    }
}

Tüm işlem bu kadar. Artık projemizde yapılan tüm sorgular storage/logs/laravel.log dosyasına aşağıdaki gibi kaydedilmektedir.

[2017-11-03 10:14:26] local.INFO: select * from `posts` where `slug` = ? limit 1 ["deneme-yazi"] 
[2017-11-03 10:14:27] local.INFO: select * from `photos` where `photos`.`post_id` in (?) [5] 
[2017-11-03 10:14:27] local.INFO: select * from `specs` where `specs`.`post_id` = ? and `specs`.`post_id` is not null [5] 
[2017-11-03 10:14:27] local.INFO: select * from `catalogs` where `catalogs`.`post_id` = ? and `catalogs`.`post_id` is not null [5] 
[2017-11-03 10:14:27] local.INFO: select * from `settings`