E-Ticaret Siteleri İçin Veritabanı Optimizasyonu: Yavaş Sorguları Tespit Etme ve Çözme

veritabanı optimizasyonu

E-ticaret dünyasında hız her zaman önem arz eder. Bunu bilerek hazırladığımız bu dokümana sahip yazımızda da veritabanı optimizesi ile birlikte sorguların daha hızlı olması, çözüm olması adına bazı önemli püf noktaları paylaşacağız. E-ticarette saniyelerin değil, saliselerin bile maliyeti vardır. Amazon’un yaptığı ünlü araştırmaya göre, 1 saniyelik gecikme ciroda %10’luk bir kayba neden olabiliyor. Çoğu webmaster, site yavaşladığında hemen sunucu işlemcisini (CPU) veya RAM’i yükseltme yoluna gider. Ancak sorun donanımda değil, sitenizin kalbinde, yani veritabanında olabilir.

Özellikle WooCommerce gibi dinamik yapıların kullanıldığı e-ticaret sitelerinde, binlerce ürün ve varyasyon arasında kaybolan bir SQL sorgusu, tüm sitenin kilitlenmesine neden olabilir. Peki, bu “yavaş sorgular” (slow queries) nasıl tespit edilir ve nasıl çözülür?

Yavaş Sorgu Nedir ve Neden Oluşur?

Bir ziyaretçi sitenizde “Mavi XL Tişört” arattığında, veritabanınız binlerce satır veriyi tarar. Eğer veritabanı tablolarınızda gerekli indeksleme yapılmamışsa veya gereksiz verilerle şişmişse, bu tarama işlemi milisaniyeler yerine saniyeler sürer. Sunucu, bu cevabı beklerken diğer ziyaretçilerin isteğini beklemeye alır ve site “kasiyer sırasında bekleme” moduna geçer.

veritabanı optimizasyon

1. Adım: Tespit Etme

Sorunu çözmeden önce kaynağını bulmalıyız. “Site yavaş” demek bir teşhis değildir.

  • Query Monitor Eklentisi: WordPress dünyasının İsviçre çakısıdır. Bu ücretsiz eklentiyi kurun ve sitenizde gezinin. Üst barda kırmızı renkte uyarılar göreceksiniz. “Slow Queries” sekmesine tıkladığınızda, hangi eklentinin veya hangi temanın veritabanını yorduğunu saniyesi saniyesine (Örn: 0.45s) görebilirsiniz.
  • MySQL Slow Query Log: Eğer VPS veya VDS kullanıyorsanız, sunucu yönetim panelinden (veya my.cnf dosyasından) “Slow Query Log” özelliğini açın. Bu özellik, belirlenen süreden (örneğin 1 saniye) uzun süren tüm sorguları bir dosyaya kaydeder.

2. Adım: Temizlik ve Optimizasyon Çözümü

Suçluyu bulduktan sonra müdahale zamanı. E-ticaret sitelerinde en sık karşılaşılan darboğazlar ve çözümleri şunlardır:

A. wp_options Tablosu ve Autoload Verisi

Birçok eklenti, silinseler bile arkalarında veri bırakır. wp_options tablosunda “autoload” olarak işaretlenen veriler, sitenin her sayfasında yüklenir. E-ticaret sitelerinde bu tablo şişerse, site kağnıya döner.

  • Çözüm: Veritabanınızda autoload boyutu 1MB’ın üzerindeyse temizlik şarttır. Gelişmiş veritabanı temizleme araçları veya manuel SQL sorguları ile kullanılmayan “option” verilerini temizleyin.

B. WooCommerce Transients (Geçici Veriler)

WooCommerce, sepet verileri ve oturumlar için “transient” adı verilen geçici veriler oluşturur. Normalde bunların süresi dolunca silinmesi gerekir, ancak bazen binlerce satır birikir.

  • Çözüm: WooCommerce > Durum > Araçlar sekmesinden “Müşteri Oturumlarını Temizle” ve “Geçici Verileri Temizle” (Clear Transients) işlemlerini düzenli olarak yapın.

C. Tablo İndeksleme (Indexing)

Büyük ürün kataloglarında veritabanının hangi verinin nerede olduğunu bilmesi gerekir. Eğer tablolarınızda “Index” yoksa (veya bozulmuşsa), veritabanı her sorguda tüm tabloyu baştan sona okur (Full Table Scan).

  • Çözüm: phpMyAdmin üzerinden tablolarınızı seçip “Optimize Table” komutunu çalıştırın. Ayrıca, ürün arama performansını artırmak için varsayılan WordPress araması yerine, veritabanını yormayan ElasticSearch veya Algolia gibi çözümlere geçiş yapmayı düşünün.

3. Adım: Object Cache Kullanımı (Redis/Memcached)

Veritabanı optimizasyonunun en güçlü silahı, veritabanına hiç gitmemektir.

  • Çözüm: Sunucunuzda Redis veya Memcached teknolojisini aktif edin. Bu teknoloji, sık yapılan sorguların cevabını (Örn: “Ürün X’in fiyatı ne?”) RAM üzerinde tutar. Müşteri sayfayı yenilediğinde veritabanı yorulmaz, cevap RAM’den milisaniyeler içinde gelir. Litespeed Cache veya W3 Total Cache gibi eklentilerle Object Cache bağlantısını mutlaka yapın.

E-ticaret sitenizde veritabanı optimizasyonu, “bir kere yap ve unut” işlemi değildir; düzenli bakım gerektiren bir süreçtir. Yavaş sorguları tespit edip ortadan kaldırmak, sadece sunucu maliyetlerinizi düşürmekle kalmaz, “Satın Al” butonuna basan müşteri sayısını da artırır.

Unutmayın; hızlı veritabanı, yüksek ciro demektir. Yine unutmadan önemli bir not; Veritabanı üzerinde yapacağınız işlemler (Silme, Optimize Etme vb.) geri alınamaz. İşlemlere başlamadan önce mutlaka sitenizin tam yedeğini aldığınızdan emin olun.

Bir yanıt yazın