it-swarm-tr.com

Hızı artırmak için MySQL Server'da bellek kullanımını nasıl artırabilirim?

8GB RAM IIS7 ve MySQL çalıştıran bir Windows 2008 sunucum var. Sunucudaki bellek, işlemci ve disk kullanımını izliyorum ve MySQL'in yalnızca 250 MB kullandığını öğrendim RAM, diskleri çok meşgul ediyor, etrafta bolca serbest koç olmasına rağmen.

SQL Server'da kolayca kullanmak istediğim bellek miktarını ayarlayabilirim, MySQL'de aynı ayarı arıyorum.

MySQL'i nasıl daha fazla bellek kullanacak ve cpu ile disk kullanımını azaltacak şekilde nasıl yapılandırabilirim?

30
holiveira

table_cache Değiştirilecek en kullanışlı yapılandırma direktifidir. MySQL bir tabloya her eriştiğinde, tabloyu önbelleğe yükler. Çok sayıda tablonuz varsa, onları önbelleğe almak daha hızlıdır.

Şunları çalıştırarak sunucu değişkenlerinize göz atın:

show status;

ve open_tables değişkenine bir göz atın. Bu, table_cache Değerinizle aynıysa ve opened_tables Artmaya devam ederse, yapılandırma dosyanızdaki table_cache Değerini artırmanız gerekir. Yoğun zamanlarda bu değişkenleri deneyerek bir denge bulacaksınız. En yoğun zamanlarda, sunucu uzun bir süre kaldıktan sonra bile düşük miktarda opened_tables Olacak şekilde yapılandırmak istersiniz.

key_buffer_size, Denemesi için de iyi bir değişkendir. Bu değişken dizin arabellek boyutunu etkiler ve bu değişkeni daha büyük yapmak MySQL'in dizin işleme hızını artırır. show variables; Komutuyla değişkenlere tekrar bakabilir ve key_read_requests İle key_reads İle karşılaştırabilirsiniz. İdeal olarak, bu iki değişken arasındaki oranın olabildiğince düşük olmasını istersiniz ve bunu key_buffer_size Boyutunu artırarak yapabilirsiniz. Bu değişkeni daha yükseğe ayarlarsanız, asıl endişeniz olan doğrudan diske ve diskten daha az yazma ve okuma elde edersiniz.

20
James

my.cnf dosyasını açın ve MySQL'i yeniden başlatın, ancak MySQL çalışırken çoğunu da değiştirebilirsiniz ('SET GLOBAL VARIABLE = değeri ').

Muhtemelen key_buffer_size, sort_buffer, read_buffer ve table_cache yeni başlayanlar için ve muhtemelen innodb_buffer_pool_size, herhangi bir InnoDB tablonuz varsa. Bu değerlerden bazıları, özellikle donanımınız göz önüne alındığında, uzun bir yolu (iki büyüklük sırasını bile) artırabilirsiniz. MySQL'in varsayılanları son derece muhafazakardır ve yaklaşık on yıl önceki ortak kullanımlı masaüstü bilgisayarlara yönelik gibi görünüyordu. Oh, ve 32 bit sürümün 2GB'dan fazla RAM kullanırken sorun yaşayacağı konusunda uyarılmalıdır.

Daha fazla bilgi ve rehberlik için MySQL El Kitabı konusuna bakın.

6
staticsan