Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Yüksek verilerde sorgulama ve algoritma

Merhaba,

Bir web projesinde ortalama 1.000.000 veri veya daha fazla veri içersine sorgulamalar yapmam gerekiyor. Projenin alt yapısı ASP ve MYSQL Şuan sorgular fazla kasmasa bile sunucu tarafında mysql devamlı CPU dan %80 - %90 larda izlemekte ve anlık ziyaretci sayısı yükseldiğinde sorun yaşamaya anlık erişimlerde sorunlar çıkmaya başlıyor. Yüksek verilerde nasıl bir veri tabanı yapısı kullanmalıyız ?

Bir arkadaşım stored procedure ile cache de sorgulamarı tutarsın %80 oranında bir hızlanma sağlarsın die tavsiye verdi. Fakat başka sitelerde araştırdığımda uzun kullanımlarda veya yüksek veri sayısına ulaşıldığında sorun çıkma ve kitlenme ihtimali yüksek şeklinde yorumlar yazılmış. Bu nedenden dolayı kararsız kaldım.

1.000.000 > 10.000.000 veri var ise ve sistem günlük 10K > 20> ziyaretci alıyorsa nasıl bir yapı izlenmeli veri olabildiğinde tablolar halinde bölüştürmelimiyiz ? Yasa oracle yemi geçmek şart ? Mysql hiçbir şekilde kaldırmıyormu ?

Sorgulamalarda "stored procedure" yönetimini kullanmak olayı düzeltirmi ? Siz daha önce kullandınızmı ?

Evet soru biraz uzun oldu ama karışık ve içinden çıkılmaz bir durum şimdiden hepinize teşekkür ederim.
+1
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • 1
    serdar_alkan adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    4 cevap - 17 soru
    Öncelikle cache mantığı sayfanın tekrar tekrar yüklenmemesi her seferinde, kullancıya ait bazı şeylerin hatırlanması, sayfalarda değişmeyen kısımların tekrar tekrar yüklenmemesi v.b. konularında. Cache nin illa ki faydası vardır ancak kullanıcı sayısı dediğiniz boyutlara varınca cache' den daha çok sorgulamanın yapısı daha ön plana çıkıyor.

    Sorgulama yapısına gelince, sorgularda çok karmaşık yapılar kullanıyorsanız bu illa ki sorun çıkaracaktır. Tabloları düzenleme şansınız varsa daha basite indirgenmiş sorgular kullanmanız da fayda var.

    Stored procedure mantığında da veritabanında kayıtlı sql sorgularıdır. Bunun avantajı çok fazla. Her kullanıcının benzer sorguları yapması durumunda, aynı sorgular tekrar tekrar işletilcek. Ancak kayıtlı sorgularda performans artışı büyük oranda oluyor.

    Ancak çok fazla procedur yazılması da veritabanını şişirmesine sebep oluyor. Bu yüzden procedure yazacağınız zaman bunun planını iyi yapmanız gerekiyor. Başa dönersek cache' leme ve procedur yazacaksanız bunu iyi planlayın. Sorgularınızı daha basit'e indirgeyin.

    Mysql' de bir limitten sonra yavaşlama oluyordur. Bu yüzden Oracle tarzı ücretli (ücreti bayaa bir fazla olan :))) veritabanı yönetim sistemlerine geçmek gerekiyor diye düşünüyorum.
    • Alpagu adlı üyenin fotoğrafı Alpagu
      Öncelikle cevap için teşekkürler,

      Anladığım kadarıyla Stored Prodecure'yi fazla tekrarlanmayan Popüler 10 üye, Popüler 10 ilan gibi yerlerde kullana biliriz. Ayrıca gün içersinde belki 10 - 15 kere yenilenen listeleme sayfalarında kullana biliriz ?

      Fakat saniye bazında devamlı güncellenen veya rastgele veri çektiğimiz bir yerde kullanmak RAM i şişirecek böylelikle sorun oluşacakdır.

      Bu nedenden dolayı projemde kategori listemele sayfalarında Stored Procedure kullanmayı, Devamlı yenilenen alanlarda ise asp üzerinden sorgu yazmak yerine view kullanmayı düşünüyorum.

      Tablo yapısında bir kaç detay sayfasında uzun metinlere yer vermiştim. Tablo yapısındada metin kısımlarını ayrı tabloda tutmaya çalışacağım belki faydası olur.

      Örnek veri tablosu,
      id - marka - renk - model - tür - fiyat - kimden - detay - özellik - özet

      Kategoride verileri gösterirken tasarımda
      id - marka - renk - fiyat - özet

      Kategori sayfasında bu veri yeterli geliyorsa. Tabloyu ikiye bölüp sadece bu verilerin olduğu 1. tablo ve burda yer almayan verilerin olduğu 2. tablo oluşturmak en ideal çözümmüdür ?

      Oracle veya benzeri programlara maalesef şuan geçemem :S Daha server ödemeleri anca yapıyoruz birde veritabanı başıma bela olmasın :))

      Tekrardan saol..
      10 yıl önce yazılmış