• 15-03-2023, 16:50:31
    #1
    örnek olarak 50.000+ satırlı bir tablonuz var
    ve her kullanıcı girdğinde bu tabloda varmı yokmu sorgulanması lazım anlık 1000 kullanıcı girdiğinde yük oluşıuyor bunu hafifletmenin bir yöntemi varmı


    örnek olarak x adında 150.000+ kayıtlı bir tablonuz var
    örnek sayfada ise 20 adet veri listeleniyor
    bu verileri tek tek bu x tablosuna gidip sorgulaması gereken veriler var
  • 15-03-2023, 16:55:50
    #2
    FinansalOzgurluk adlı üyeden alıntı: mesajı görüntüle
    örnek olarak 50.000+ satırlı bir tablonuz var
    ve her kullanıcı girdğinde bu tabloda varmı yokmu sorgulanması lazım anlık 1000 kullanıcı girdiğinde yük oluşıuyor bunu hafifletmenin bir yöntemi varmı
    Merhaba
    ikiye böle böle giderek hedefe ulaşmanız daha az veri kullanımını sağlar. Örneğin sorgu numarası 6850 ve 1 den 50 bine kadar veri varsa sorgu geldiğinde ilk 25 bin içinde mi diye bakar bu sayıya evet se tekrar ikiye bölerek ilk 12.500 e bakar bunda da evet se 6100 e bakar bunda hayırsa ikinci kısma geçer yani 6101 den 12.500 olan yere burada arar.
  • 15-03-2023, 16:56:21
    #3
    Ben değil ama yapay zekaya soruğumda sunduğu önerileri sana atıyorum.


    1. Daha iyi bir veritabanı optimizasyonu: Veritabanınızı optimize etmek, tablolarda indeksler oluşturmak, gereksiz sorgulamaları azaltmak, gereksiz verileri temizlemek ve gereksiz yüklemeleri azaltmak gibi yöntemler ile veritabanınızın performansını arttırabilirsiniz.
    2. Veritabanı önbelleği: Veritabanındaki sık sorgulanan verileri önbelleğe alabilirsiniz. Bu, daha hızlı yanıt vermenizi sağlar ve sorgu yükünü azaltır. Önbelleğe alma işlemi, veritabanınızın boyutuna bağlı olarak bellek kullanımını arttırabilir, bu nedenle doğru bir önbellekleme stratejisi seçmek önemlidir.
    3. Sorgu önbelleği: Sık sorgulanan sorguları da önbelleğe alabilirsiniz. Bu, daha hızlı yanıt vermenizi sağlar ve veritabanına yapılan sorgu sayısını azaltır. Ancak, sorguların önbelleğe alınması, yeni veri eklenmesi veya güncellenmesi durumunda sorgu sonuçlarının güncellenmesi gerektiği anlamına gelir.
    4. Veritabanı shard'ı: Veritabanınızın şardlanması, veritabanını birden çok sunucuya bölmenize ve her sunucunun yalnızca belirli verileri işlemesine izin verir. Bu, sorgu yükünü azaltır ve veritabanınızın daha iyi ölçeklenebilir olmasını sağlar.
    5. Cache: Kullanıcıların sık ziyaret ettiği sayfaları önbelleğe alabilirsiniz. Bu, sunucu yükünü azaltacak ve daha hızlı yanıt vermenizi sağlayacaktır. Ancak, önbellekleme stratejinizi doğru bir şekilde seçmeniz ve önbelleklenen verilerin doğru bir şekilde güncellenmesini sağlamanız önemlidir.
    Bu yöntemlerin her biri, sorgu yükünü azaltarak ve veritabanı performansını artırarak anlık binlerce kullanıcının sorgu yapmasına olanak sağlayabilir. Kodlama için, önbellekleme ve veritabanı optimizasyonu gibi teknikler PHP ve SQL kodunda kullanılabilir. Örneğin, sorgu sonuçlarının önbelleğe alınması için PHP'nin önbellekleme fonksiyonlarından yararlanılabilir veya veritabanı indeksleri SQL sorgularında kullanılabilir. Ancak, her bir yöntem için doğru bir şekilde kodlama yapılması önemlidir.

    // Veritabanı bağlantısı
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    
    // Sorgu önbelleği için memcached bağlantısı
    $memcached = new Memcached();
    $memcached->addServer('localhost', 11211);
    
    // Sorgu önbelleğinde saklanacak anahtar
    $key = 'query_cache_key';
    
    // Önbellek sorgusu var mı kontrol et
    if ($result = $memcached->get($key)) {
        // Önbellekte varsa önbellekten sonucu döndür
        return $result;
    } else {
        // Önbellekte yoksa veritabanından sorguyu yap
        $sql = "SELECT * FROM my_table WHERE my_field = 'some_value'";
        $result = mysqli_query($conn, $sql);
    
        // Sorgu sonucunu önbelleğe al
        $memcached->set($key, $result, 3600); // 3600 saniye (1 saat) boyunca önbellekte saklanır
    
        // Sorgu sonucunu döndür
        return $result;
    }
    Bu kod, önbelleklenmiş bir sorgu sonucunu önbellekte saklamak ve sonraki isteklerde önbellekten sonucu döndürmek için örnek bir kod parçasıdır. Önbellekleme, sorgu yükünü azaltarak veritabanı performansını artırmaya yardımcı olur. Ancak, kodlama yaparken veritabanını optimize etmek ve diğer yöntemleri de kullanmak önemlidir.
  • 15-03-2023, 17:02:15
    #4
    örnek olarak x adında 150.000+ kayıtlı bir tablonuz var
    örnek sayfada ise 20 adet veri listeleniyor
    bu verileri tek tek bu x tablosuna gidip sorgulaması gereken veriler var
  • 15-03-2023, 21:59:48
    #5
    Başka cevaplar olursa iyi olur