Teknik

Dijital Ürün Satış Scripti Veritabanı Büyümesini Yönetmek: Siten Yavaşladıkça Sunucu Suçlanıyor Ama Asıl Suçlu Yıllardır Silinmeyen O Tablolar

E-pin scriptinde veritabanı şişmesi siteyi sessizce yavaşlatır. Log, oturum, sipariş ve stok tablolarını arşivleme, saklama politikası ve indeks yönetimi rehberi.

Dijital Ürün Satış Scripti Veritabanı Büyümesini Yönetmek: Siten Yavaşladıkça Sunucu Suçlanıyor Ama Asıl Suçlu Yıllardır Silinmeyen O Tablolar

Çoğu kişi sitesinin zamanla yavaşlamasını sunucunun eskimesine bağlar. Hosting paketini yükseltir, birkaç hafta rahatlar, sonra aynı yavaşlık geri gelir. Oysa dijital ürün satışında yavaşlamanın en yaygın sebebi donanım değil, hiç kimsenin bakmadığı bir tablonun sessizce milyonlarca satıra ulaşmasıdır.

Bunun sinsi tarafı, büyümenin faydalı görünmesidir. Sipariş sayın arttıkça log satırların artar, ziyaretçin arttıkça oturum kayıtların birikir, kampanya yaptıkça bildirim kuyruğun şişer. Hepsi başarı göstergesidir ama hiçbiri temizlenmiyorsa aynı başarı bir süre sonra sitenin frenine dönüşür. Bu yazıda bir e-pin scriptinde hangi tabloların neden büyüdüğünü, hangisinin silinip hangisinin arşivleneceğini ve bunu veri kaybetmeden nasıl yapacağını anlatıyoruz.

%80Tipik kurulumda toplam veri boyutunun log ve oturum tablolarındaki payı
12xArşivleme sonrası sipariş listeleme sorgusunda gözlenen hızlanma
90 günOperasyonel log için önerilen varsayılan saklama süresi
10 yılMali kayıtlar için yasal saklama yükümlülüğü

Hangi tablolar büyür ve neden hepsi aynı değerde değildir?

Bir dijital ürün satış scriptinde tablolar üç gruba ayrılır. Birinci grup mali ve sözleşmesel kayıtlardır: siparişler, ödemeler, faturalar, bakiye hareketleri. Bunlara dokunamazsın, yasal saklama süresi boyunca erişilebilir olmak zorundadır. İkinci grup operasyonel izlerdir: giriş denemeleri, sistem logları, webhook kayıtları, e-posta gönderim geçmişi. Bunların değeri birkaç ay sonra hızla düşer. Üçüncü grup ise geçici verilerdir: oturumlar, sepetler, parola sıfırlama anahtarları, önbellek satırları. Bunlar günler içinde tamamen değersizleşir.

Sorunun kaynağı, çoğu kurulumda bu üç grubun aynı saklama politikasına, yani "hiç silme" politikasına tabi olmasıdır. Oysa doğru yaklaşım her gruba ayrı bir ömür tanımlamaktır. Böylece mali veri güvende kalırken, siteyi yavaşlatan asıl kütle küçülür.

Veri türüBüyüme hızıÖnerilen politikaSaklama
Sipariş ve ödeme kayıtlarıOrtaArşiv tablosuna taşı, asla silmeYasal süre
Stok kod havuzu (kullanılmış)YüksekŞifreli arşiv, ana tablodan çıkarYasal süre
Sistem ve hata loglarıÇok yüksekDönemsel sil60-90 gün
Giriş ve güvenlik loglarıYüksekÖzetle, ham kaydı sil180 gün
Oturum kayıtlarıÇok yüksekOtomatik temizlik7-14 gün
Terk edilmiş sepetlerYüksekRaporla, sonra sil30-60 gün
Webhook / API çağrı kaydıÇok yüksekBaşarılıları sil, hataları tut30 gün

Silmek mi arşivlemek mi? İkisi farklı işlerdir

Silmek ve arşivlemek çoğu zaman birbirinin yerine kullanılır ama aynı şey değildir. Silmek, verinin bir daha lazım olmayacağına karar vermektir. Arşivlemek ise veriyi sıcak tablodan çıkarıp soğuk bir yere taşımaktır; hâlâ erişilebilir ama günlük sorguları yavaşlatmaz.

Pratik kural şu: bir yıldan eski tamamlanmış siparişleri ana tablodan ayrı bir arşiv tablosuna taşı. Panelde "geçmiş siparişler" filtresi bu tabloyu okur, günlük operasyon ise küçük ve hızlı ana tabloyla çalışır. Kullanılmış stok kodları için de aynısı geçerlidir; bunlar genellikle veri hacminin en büyük kalemidir ve satış sonrası sadece iade veya itiraz durumunda gerekir.

Arşivleme yaparken iki şeye dikkat et. Birincisi, taşıma işlemini tek seferde milyonlarca satırla değil, binlik parçalar halinde ve düşük trafik saatinde yap. İkincisi, taşımadan önce mutlaka yedek al ve taşıma sonrası satır sayılarını karşılaştır. Kaybolan tek bir mali kayıt, kazandığın hızdan çok daha pahalıya mal olur.

Olgun bir e-pin kurulumunda disk alanının dağılımı

  • Log ve izleme tabloları 45%
  • Stok kodu ve teslimat kayıtları 25%
  • İndeksler 20%
  • Sipariş, kullanıcı ve ürün verisi 10%

İndeksler neden hem çözüm hem sorun?

İndeks eklemek yavaş bir sorguyu anında hızlandırır, bu yüzden çok cazip görünür. Ancak her indeks, yazma işlemlerine ek maliyet bindirir ve disk alanı tüketir. Yıllar içinde "bir sorun çıkınca eklenmiş" ama artık hiçbir sorgunun kullanmadığı indeksler birikir.

Yapman gereken üç şey var. Önce kullanılmayan indeksleri tespit et; çoğu veritabanı motoru indeks kullanım istatistiği tutar. Sonra çakışan indeksleri birleştir; aynı sütunla başlayan iki ayrı indeks genellikle tek bir bileşik indekse indirgenebilir. Son olarak, sık filtrelenen sütun kombinasyonlarını doğru sırada indeksle. Sipariş tablosunda kullanıcı kimliği ve tarih birlikte sorgulanıyorsa, bu ikisini kapsayan tek bir bileşik indeks, iki ayrı indeksten çok daha etkilidir.

Bir e-pin yazılımının kurulum sonrası bakım adımlarında indeks denetimi yer alıyorsa bunu ciddiye al. Çoğu yavaşlama şikayetinin altından eksik değil, yanlış sıralanmış bir indeks çıkar.

Yedek süresi sessiz alarmdır

Gece yedeğinin süresi aylar içinde 4 dakikadan 40 dakikaya çıktıysa bu bir performans uyarısıdır. Veritabanı büyümesini ilk fark ettiren şey çoğu zaman panel değil, uzayan yedekleme penceresidir.

Rapor sorguları canlı tabloyu neden bu kadar zorluyor?

Panelde "bu ay ne kadar sattım" sorusuna cevap veren ekran, arka planda genellikle yüz binlerce satırı tarayan bir toplama sorgusu çalıştırır. Tek başına sorun değildir; sorun bu ekranın her açılışta yeniden hesaplaması ve birden fazla kişinin aynı anda bakmasıdır.

Çözüm özet tablolarıdır. Günlük satış toplamlarını, ürün bazlı adetleri ve kategori kırılımlarını gece bir kez hesaplayıp küçük bir özet tablosuna yaz. Panel bu özetten okusun. Böylece rapor ekranı milisaniyelerde açılır ve canlı sipariş tablosuna hiç dokunmaz.

İkinci bir iyileştirme, rapor ekranlarına varsayılan tarih sınırı koymaktır. "Tüm zamanlar" seçeneğini varsayılan yapmak, her açılışta tüm tarihi taratır. Varsayılanı son 30 gün yap; geniş aralığı isteyen kullanıcı bilinçli olarak seçsin. Panel ve raporlama yapısının nasıl kurgulandığını özellikler bölümünde inceleyebilirsin.

Aylık bakım rutini: ne zaman neye bakacaksın?

Veritabanı büyümesi bir kriz anında çözülecek bir iş değil, düzenli bir bakım disiplinidir. Aşağıdaki tabloyu bir takvim gibi kullan; her maddeyi sorumluyla ve periyotla eşleştir.

PeriyotKontrolAlarm eşiği
GünlükYedek süresi ve yedek boyutu%20 ani artış
GünlükOturum ve geçici tablo temizliği çalıştı mıGörev atlandıysa
HaftalıkYavaş sorgu günlüğü ilk 10 kayıt1 sn üzeri sorgu
HaftalıkEn büyük 5 tablonun satır sayısıHaftalık %15 artış
AylıkLog tablosu saklama politikası uygulamasıPolitika dışı kayıt varsa
AylıkKullanılmayan indeks taraması3 ay hiç kullanılmamışsa
ÇeyreklikEski sipariş ve kod arşivleme1 yıldan eski kayıtlar
ÇeyreklikArşivden geri dönüş tatbikatıTest başarısızsa

Veri büyümesini baştan doğru kurgulanmış bir altyapıyla karşıla

Pinova, arşivleme dostu tablo tasarımı, otomatik temizlik görevleri ve özet tablolu raporlama ile gelir. Büyüdükçe yavaşlamayan bir kurulumla başla.

Eski siparişleri silmem yasal olarak sorun yaratır mı?

Mali kayıt niteliğindeki sipariş, ödeme ve fatura verilerini yasal saklama süresi dolmadan silmemelisin. Bunları silmek yerine arşiv tablosuna taşı. Silinebilecek olanlar log, oturum ve geçici kayıtlardır.

Veritabanım kaç GB olursa endişelenmeliyim?

Mutlak boyuttan çok büyüme eğrisi önemlidir. Toplam boyutun her ay istikrarlı biçimde artıyor ama sipariş sayın aynı oranda artmıyorsa, büyüme satıştan değil birikmiş loglardan geliyordur. Asıl uyarı işareti budur.

Arşiv tablosunu aynı veritabanında mı tutmalıyım?

Başlangıçta aynı veritabanında ayrı bir tablo yeterlidir ve yönetimi kolaydır. Arşiv hacmi canlı veriyi kat kat aştığında ayrı bir veritabanına ya da ayrı bir sunucuya taşımak yedekleme süresini ciddi biçimde kısaltır.

Temizlik görevlerini otomatikleştirmek riskli mi?

Doğru kurgulandığında riskli değildir, aksine unutmaktan güvenlidir. Üç kural yeterli: görev yalnızca tanımlı tablolarda çalışsın, her çalıştırmada kaç satır etkilediğini raporlasın ve ilk ay silme yerine sadece raporlama modunda çalışsın.

Veritabanı bakımı görünmeyen bir iştir; iyi yapıldığında kimse fark etmez, ihmal edildiğinde ise önce yavaşlık, sonra kesinti olarak geri döner. Elindeki altyapının arşivleme, temizlik ve özet raporlama tarafını nasıl karşıladığını görmek istersen panel akışını canlı demo üzerinden incele; ihtiyacına uygun paketi ise fiyat bölümünden karşılaştırabilirsin.

Daha Fazlasını Keşfedin

Dijital ürün satışı ve otomasyon üzerine güncel rehberlere göz atın.

Tüm Yazıları Gör →
Bu yazıyı paylaşın
Bu yazıyı beğendiniz mi?
Teşekkürler!
← Tüm yazılar