Telescope Request ID: a0afb058-10f2-42f0-8198-f614a964e32e
26 Aralık 2025 - muzibu.com (Tenant 1001)
Ana sayfa neden yavaş? Sayfa açıldığında sistem veritabanına 284 kez soru soruyor. Bunun 174'ü aynı soru: "Bu içerik favorilere ekli mi?"
Benzetme: Bir markete gittiğinizi düşünün. Her ürün için "Bu ürün indirimde mi?" diye kasaya koşup soruyorsunuz. Oysa tek seferde "Hangi ürünler indirimde?" diye sorsanız işlem çok hızlı olurdu.
Sonuç: Sayfa açılması 2.8 saniye sürüyor. Optimize edilirse 0.5 saniye altına düşürülebilir.
select exists(select * from `favorites` where `favorites`.`favoritable_type` = 'Modules\Muzibu\App\Models\...' and ...)
isFavorite() metodu Blade'de loop içinde çağrılıyor✅ Çözüm:
Controller'da tüm favorileri tek sorguda çek, view'a geçir.
$favoriteIds = auth()->user()->favorites()->pluck('favoritable_id')
select `muzibu_playlists`.*, (select count(*) from `muzibu_songs` inner join `muzibu_playlist_song`...) as songs_count
withCount('songs') kullan veya songs_count field'ı cache'le
select `muzibu_albums`.*, (select count(*) from `muzibu_songs` where...) as `songs_count`
songs_count field'ı ekle, şarkı eklendiğinde increment yapsetting('key') çağrısı 2 query atıyor| Süre | Query |
|---|---|
| 61.58ms | Playlist songs count (subquery) |
| 35.21ms | Album songs_count (subquery) |
| 28.86ms | Playlist songs pivot query |
| 27.06ms | Corporate accounts exists check |
| 26.90ms | Genres with songs exists |
| 21.68ms | User subscription check |
| 18.29ms | Settings values (setting_id = 241) |
Favorites N+1 Çözümü
174 query → 1 query = ~80ms kazanç
Playlist/Album songs_count Cache
Subquery → Cached field = ~100ms kazanç
User Subscription Session Cache
3 query → Session = ~23ms kazanç
Settings Eager Loading
~15 query → 1 query = ~40ms kazanç
7x hızlanma potansiyeli