Dikkate alınması gereken bir şey, MySQL'in ana depolama motorları için tamponları nasıl kullandığıdır: InnoDB ve MyISAM .
Bellekte saklanan şey bu depolama motorları arasında büyük farklılıklar gösterir.
InnoDB hem veri hem de dizin sayfalarını önbelleğe alır. Bunlar, innodb_buffer_pool_size boyutundaki InnoDB Buffer Pool'a yüklenir .
MyISAM yalnızca dizin sayfalarını önbelleğe alır ve key_buffer_size boyutunda olan Anahtar Önbelleğe (Anahtar Arabelleği) yüklenir .
InnoDB Arabellek Havuzu ve MyISAM Anahtar Önbelleğini doğru şekilde boyutlandırmak için diskte kullanılan veri ve dizin boyutlarını almak için information_schema.tables kullanmalısınız .
Ne kadar veriye sahip olduğunuza ve ne kadar zaman ayıracağınıza bağlı olarak, önbellekleri aşağıdaki gibi ısıtabilirsiniz:
Her masa için
- her bir indekse git NDX
- her bir dizin için NDX
- SEÇ çalıştırmak en az bir kolon indekslenmeyen, Ndx her sütun TABLET tabletten
Bunu yaparak, her verinin ve dizin sayfasının en az bir kez okunacağını garanti edersiniz. Önbellekte oturacaklar. Bu kavram kısmen ve prensip olarak Percona tarafından uygulanmaktadır . Percona bu konsepti mk-slave-prefetch'e dönüştürdü . Bu programın yaptığı
- içinde SQL işleyen köle öncesinde bir slave üzerindeki röle günlüklerini okuyun
- röle günlüğünden bir SQL deyimi alın ve dizin seçimi için bir kılavuz olarak WHERE, GROUP BY ve ORDER BY yan tümcelerini kullanarak bir SELECT'e dönüştürün
- dönüştürülmüş SQL'den gelen SELECT deyimini yürütün
Bu, slave'i SQL'in hızlı bir şekilde işlemesi için slave tarafından ihtiyaç duyulan verilerin% 99,99'una sahip olmaya zorlar. Bu aynı zamanda, köle manuel olarak yük devretmeniz ve önbelleğe BAŞLADIĞINIZ ÜSTÜNCÜ ADI OLARAK SADECE SADECE BİR ÜLKEYE tanıtımınız için hazırlanan köleyi hazırlar.
SONUÇ
Önbellekleri hazır, istekli ve ağır INSERTS, UPDATE'ler ve DELETE'lerin bulunduğu bir ortamda kullanabileceğiniz hiçbir şey yoktur.
Bir şans ver !!!
UYARI
Memcached gibi ürünlerin doğumuyla, bazıları MySQL'in uygun ayarını yapma ihtiyacından uzaklaştı. Ancak, birçok site, geliştiricilerin hızlı bir şekilde memcached ile gördüğü gibi verilerin önbellekleme davranışını kontrol ederek sağlanan veri alımındaki artıştan yararlanmaktadır. Diğer birçok site, sadece depolama motorlarını değiştirerek veya MySQL'i doğru şekilde yapılandırarak aynı performans avantajlarını elde etti. Veritabanından vazgeçmeden ve kesinlikle bir veri havuzu olarak kullanmadan önce veri tabanınızdan en iyi şekilde yararlanın. Durum tespiti takip edin ve MySQL'in sizin için ne yapacağına şaşırabilirsiniz.