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


28

IIS7 ve MySQL çalıştıran 8 GB RAM'e sahip bir Windows 2008 sunucum var. Sunucudaki bellek, işlemci ve disk kullanımını izliyorum ve MySQL'in sadece 250 MB RAM kullandığını öğrendim.

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

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

Yanıtlar:


20

table_cachedeğiştirmek için en kullanışlı yapılandırma yönergesidir. MySQL bir tabloya her eriştiğinde, tabloyu önbelleğe yükler. Çok sayıda tablonuz varsa, önbelleklenmeleri daha hızlı olur.

Aşağıdakileri yaparak sunucu değişkenlerinize bir göz atın:

show status;

ve değişkene bir göz atın open_tables. Bu, table_cachedeğerinizle aynıysa ve opened_tablesdevam ederse table_cache, yapılandırma dosyanızdaki değeri artırmanız gerekir . Yoğun zamanlarda bu değişkenleri deneyerek bir denge bulacaksınız. Yapılandırmak istediğiniz en yoğun zamanlarda, opened_tablessunucu uzun bir süre çalıştıktan sonra bile düşük bir miktar olacaktır .

key_buffer_sizeaynı zamanda denemek için iyi bir değişkendir. Bu değişken, dizin arabelleği boyutunu etkiler ve bu değişkeni büyütmek MySQL'in dizin işleme hızını arttırır. Sen ile değişkenlerin bakabilirsiniz show variables;tekrar komuta ve karşılaştırmak key_read_requestsiçin key_reads. İdeal olarak, bu iki değişken arasındaki oranın olabildiğince düşük olmasını istersiniz ve bunu boyutunu artırarak yapabilirsiniz key_buffer_size. Bu değişkeni daha yükseğe ayarlarsanız, asıl meseleniz olan daha az yazma ve doğrudan diske veya diske okuyacaksınız.


11
Aslında komut show status; durum değişkenleri görmek gibi Open_tablesve Opened_tables. table_cacheson MySQL sürümlerinde kaldırılmış gibi görünüyor.
Matt Fenwick

5

my.cnfDosyadaki değerleri değiştirmeniz ve MySQL'i yeniden başlatmanız gerekir; ancak MySQL çalışırken da çoğunu değiştirebilirsiniz ('SET GLOBAL VARIABLE = value ').

Muhtemelen artan bakmak isteyecektir key_buffer_size, sort_buffer, read_bufferve table_cacheyeni başlayanlar için ve muhtemelen innodb_buffer_pool_sizeherhangi InnoDB'nin tabloları varsa,. Bu değerlerden bazıları, özellikle donanımınız göz önüne alındığında, uzun bir yol (hatta iki büyüklük derecesi) artırabilir. MySQL'in varsayılan ayarları son derece muhafazakar ve yaklaşık on yıl önce yaygın kullanılan karma masaüstlerine yönelik görünüyordu. Ayrıca, 32 bit sürümün 2GB'tan fazla RAM kullanmakta zorlanacağı konusunda uyarılırsınız.

Bak Manuel MySQL Daha fazla bilgi ve rehberlik için.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.