Orphan Veri Analizi

Silinmiş şarkıların temizlenmemiş verileri

16 Mart 2026

Basit Anlatım

Sorun: Şarkılar silindiğinde ilgili dosyalar ve veritabanı kayıtları temizlenmemiş. Bu "hayalet" veriler hem disk alanı israf ediyor hem de playlistlerde hatalara neden olabilir.

Etki: ~9.2 GB gereksiz dosya ve 2,958 orphan veritabanı kaydı.

Çözüm: SongObserver güncellendi. Artık yeni silmelerde temizlik otomatik yapılacak. Mevcut orphan verilerin manuel temizlenmesi gerekiyor.

657
Silinmiş Şarkı
2,958
Orphan Pivot
104
Etkilenen Playlist
~9.2 GB
Orphan Dosya

Veritabanı Orphan Kayıtları

Tablo Orphan Kayıt Açıklama
muzibu_playlist_song 2,958 Silinmiş şarkıların playlist ilişkileri

En Çok Etkilenen Playlistler (Top 10)

Neo Soul & Jazz Playlist 101
Soul Funk Playlist 98
Samba Jazz Playlist - Kopya 83
Birch Glow Setlist 82
Piedmont Blues Playlist 78
Glass of Soul Setlist 72
Stillform Setlist 72
Daily Beauty Vibes Setlist 72
Electric Boutique Setlist 72
Open Air Office Setlist 72

Orphan Dosyalar

Dosya Türü Toplam Orphan Tahmini Boyut
HLS Klasörleri 33,564 657 ~6.69 GB
MP3 64k 33,563 657 ~0.83 GB
MP3 128k 33,563 657 ~1.67 GB
TOPLAM 1,971 dosya ~9.19 GB

Test Albümü (ID: 839)

Downtempo House Album - Test için eklenen ve silinen 20 şarkı

20
Silinmiş Şarkı
38
Orphan Pivot
60
Orphan Dosya

Temizlik Planı

ADIM 1 Veritabanı Temizliği

Orphan pivot kayıtlarını sil

DELETE FROM muzibu_playlist_song WHERE song_id IN (SELECT song_id FROM muzibu_songs WHERE deleted_at IS NOT NULL);

Etki: 2,958 kayıt silinecek, 104 playlist etkilenecek

ADIM 2 HLS Dosyalarını Temizle

Orphan HLS klasörlerini sil (~6.69 GB)

657 klasör silinecek: hls/{song_id}/

ADIM 3 MP3 Dosyalarını Temizle

Orphan MP3 fallback dosyalarını sil (~2.5 GB)

657 dosya: mp3_64/{song_id}.mp3 + mp3_128/{song_id}.mp3

ADIM 4 Playlist Cache Güncelle

Etkilenen 104 playlist'in cache'ini yeniden hesapla

Teknik Detaylar

Sorunun Kaynağı

  • SongObserver dosya silme işlemi içermiyordu (şimdi eklendi)
  • Bulk delete kullanıldığında Observer tetiklenmiyor
  • Eski silmeler Observer eklenmeden önce yapılmış

Yapılan Düzeltme

SongObserver::deleted() metoduna eklenen:

  • cleanupPlaylistPivot() - Pivot kayıtlarını temizler
  • cleanupAudioFiles() - HLS, MP3, orijinal dosyaları siler