• 03-06-2015, 11:10:44
    #1
    Merhabalar,

    Bir tane haber sitem var, herşey normal olarak giderken hosting kaynaklarını fazla kullanmaya ve hata vermeye başladı. Hosting firmamla görüştüğümde ise kodlarımı optimize ettirmemi istediler. Düz mantık PHP ve MySQL kullanıyorum. kullandığım bazı kodları yazacağım, eğer bir hatam varsa düzeltirseniz sevinirim.

    $sorgu = mysql_query("SELECT * FROM icerik WHERE h_time>='$date' ORDER BY h_time DESC LIMIT 5"); 
    while($yaz=mysql_fetch_assoc($sorgu)){ 
    echo $yaz['haber'];
    } ?>
    1- Burada oluşturduğum değişkenleri sayfa sonunda unset yada başka bir yöntemle yok etmeli miyim?

    2- WHERE kısmında WHERE x=1 and (Y=0 or z=3) gibi bir şart kullanmamın sakıncası var mıdır., parantez içinde or kullanımı bir problem yaratır mı?

    3- UPDATE kullandığımda (haber hitleri için yoğun şekilde kullanıyorum) mysql_killed_query kısmında problem yaşıyorum. Mysql_killed_query kısmını temizlememin ya da update kullandığımda bu kodu sonlandırmamın bir yolu var mı?

    4- her sayfa sonunda mysql bağlantısını kapatmalı mıyım?

    şimdilik sorularım bu kadar. Önerileriniz için bekliyorum, şimdiden teşekkürler
  • 03-06-2015, 11:19:15
    #2
    Sorgunuz örneğin phpmyadmin ekranından görebileceğiniz gibi çalıştırdığınızda kaç saniyede dönüyor ?

    Mysql İşlemlerinde takılan bekleyen sorgu vs yoksa ziyaretçi sayıları da normal seviyelerde ise büyük ihtimal paylaşlımlı hostingde olduğu için sıkıntı veriyor olabilir.
  • 03-06-2015, 11:34:12
    #3
    Sorgu ile ilgili detaylar aşağıda. 30.000 data içerisinden sorgu yaptım. Dedicated sunucuya geçeceğim yakında zaten, öncesinde hatalarımı temizlemek istiyordum.

    Gösterilen satır 0 - 8 (toplam 9, Sorgu 0.0002 san. sürdü) [h_time: 2013-08-16 22:41:45 - 2013-12-31 00:14:00]
  • 05-06-2015, 12:27:21
    #4
    Sorgularında sıkıntı yok ama INDEX ve PARTITION çalışması yapmanı tavsiye ederim 30.000 sorguda sorun olmaz ama ileride 1 M kayıtta sorun yaşaya bilirsin. Arama motorlarında INDEX ve PARTITION için araştırma yapabilirsin. Takıldığın noktalarda pm atarsan destek olabilirim. İyi çalışmalar.
  • 06-06-2015, 00:16:41
    #5
    INDEX ve PARTITION için inceleyeceğim Sharaka, teşekkürler. peki en çok killed_query kısmında takılan sorgu olarak aşağıdaki kodu görüyorum bunda bir problem mi var? yardımcı olursanız sevinirim.

    mysql_query("UPDATE haber_icerik SET hit='$hit' WHERE haber_id='$haber_id'") or die(mysql_error());
  • 06-06-2015, 10:27:53
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Madem degisiklige gideceksik o zaman mysql ile ugrasma veritabani kodlarini MySQLi*ve PDO_MySQL*ile degistir. Hem guvenligin artar hemde bir sure sonra php nin yeni surumuyle eskisi kaldirildiginda ortada kalmazsin