Nedenini anlamak için InnoDB tarihçesine ihtiyacınız var. İşte gidiyor:
SAVAŞ HİKAYESİ
InnoDB ve sorgu önbelleği sürekli bir savaş durumundadır. InnoDB Tampon Havuzundaki değişiklikleri incelerken ve aynı değişiklikler için Sorgu Önbelleği'ni çapraz kontrol ederken InnoDB çok elle kullanılma eğilimindedir.
BARIŞ ANTLAŞMASI
MySQL 5.0'dan önce, sorgu önbelleği InnoDB için devre dışı bırakıldı. Şimdi, InnoDB onunla etkileşime giriyor. Konuları basitleştirmek için Query Cache'yi sadece query_cache_size değerini 0'a ayarlayarak devre dışı bırakabilirsiniz .
Query_cache_time hakkındaki MySQL Belgesine göre
Eğer sunucu 0 olarak ayarlanmış query_cache_type ile başlatılmışsa , sorgu önbellek muteksini hiç almaz, yani sorgu önbellek çalışma zamanında etkin olamaz ve sorgu çalıştırmada genel giderler azalır.
GÖNDERENİN KOŞULLARI
Query_cache_size ayarı değerini 0 olarak tek bedene uyan bir çözüm değildir.
Savaşın nedeni, ilk başta, genel gider. InnoDB her zaman değişiklikleri denetleyecektir. Daha büyük bir sorgu önbelleği InnoDB'nin bu kadar zor çalışmasına neden olur. Sorgu önbelleğini devre dışı bırakmak InnoDB ve Query Cache'yi mutlu edelim. Ancak, siz (Geliştirici / DBA), böyle bir barış anlaşması olsa bile, kötü sorgulama performansı ile bu savaşın zayiatı olabilirsiniz.
Aşağıdakilere bağlı olarak
- İş yoğunluğu
- Değişim Sıklığı
- Aynı verileri okuma sıklığı
query_cache_size ayarını yapmalısınız değerini, performansın arttığını düşündüğünüz herhangi bir sayıya (Bu bir yeraltı hareketi başlatmak için eşittir).
SONSÖZ
Bu savaş hikayesini nereden bulduğumu merak ediyorsanız, lütfen eski yazıma bakın
Bunu dikkatlice okudum çünkü bunu Yüksek Performanslı MySQL'in (2. Baskı) 209-215. Sayfalarından öğrendim.
Sorgu önbelleğini daha önce başkalarına devre dışı bırakmanızı tavsiye ettim.
NOT: Sorunun query_cache_type ile ilgili olduğunu anladım . Sorgu önbelleği üzerinde bir etkisi yoktur. Önbelleğin devre dışı bırakılması InnoDB'nin üzerindeki hakimiyetini engelliyor. Query_cache_type öğesini elle ayarlamak, Geliştirici / DBA'yı sorgu önbelleğinin karşılaşacağı sorgu türlerini dikkatlice düşünmeye zorlar.