Eğer veritabanına SELECT
s çok ve birkaç yazar varsa MySQL sorgu önbellek sizin için verileri önbelleğe oldukça iyi bir iş yapmak gerekir.
Sorgu önbelleği nasıl çalıştığını etkili görmek için aşağıdakileri deneyin:
> SHOW GLOBAL STATUS LIKE 'Qcache_hits';
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| Qcache_hits | 735740 |
+---------------+--------+
1 row in set (0.00 sec)
> SHOW GLOBAL STATUS LIKE 'Com_select';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| Com_select | 5644038 |
+---------------+---------+
1 row in set (0.00 sec)
Isabet oranı hesaplamak bulmak için Qcache_hits / (Qcache_hits + Com_select)
Bu durumda, bu kadar 735740 / (735740 + 5644038) = 0.1153
Yani% 11 isabet oranı var ve oldukça zayıf.
Eğer makine üzerinde çok daha yüksek% görürseniz o memcached kullanarak bir davanın daha az olabilir.
MySQL sorgu önbellek birçok durumda iyi çalışır (ben bu seninkini içerir sanıyorum). Önbellek girdileri bir tablo güncellendi (önbelleğe alınan sorgu değişmiş değil bir satır ilgili olsa bile) ve bu da büyük bir eksiklik olduğunu her zaman geçersiz kılınır. Sizin ve uygulama MySQL sorgu önbellek daha önbellek bitiminden yaklaşık akıllı olabilir zaman bir satır seviyeye yaklaştıkça önbellek öğeleri memcached kullanabileceğiniz durumlar vardır.
Bana sorgu önbellek isabet oranı sonucunu bildirin. Hatta sorgu önbellek şu anda devre dışı var ettik bulabilirsiniz (!)
Bunu aşağıdaki sorguyu çalıştırarak etkin olsun doğrulayabilirsiniz:
> SHOW GLOBAL VARIABLES LIKE '%cache';
Orada have_query_cache = YES
ve query_cache_size > 0
için kontrol edin.