ö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
PHP ve SQL Sorusu Uzmanları Beklerim.
4
●204
- 15-03-2023, 16:50:31
- 15-03-2023, 16:55:50MerhabaFinansalOzgurluk adlı üyeden alıntı: mesajı görüntüle
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:21Ben değil ama yapay zekaya soruğumda sunduğu önerileri sana atıyorum.
- 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.
- 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.
- 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.
- 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.
- 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.
// 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ö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