it-swarm-id.com

Bagaimana cara meningkatkan penggunaan memori di MySQL Server untuk meningkatkan kecepatan?

Saya memiliki server Windows 2008 dengan 8GB RAM menjalankan IIS7 dan MySQL. Saya telah melacak penggunaan memori, cpu dan disk di server dan saya menemukan bahwa MySQL menggunakan hanya 250MB dari RAM, menjaga disk sangat sibuk, meskipun saya punya banyak ram gratis tergeletak di sekitar.

Dalam SQL Server saya dapat dengan mudah mengatur jumlah memori yang saya inginkan, saya mencari pengaturan yang sama di MySQL.

Bagaimana saya bisa mengkonfigurasi MySQL untuk menggunakan lebih banyak memori dan mengurangi penggunaan cpu dan disk?

30
holiveira

table_cache Adalah direktif konfigurasi yang paling berguna untuk diubah. Setiap kali MySQL mengakses tabel, ia memuat tabel ke dalam cache. Jika Anda punya banyak tabel, lebih cepat di-cache.

Lihatlah variabel server Anda dengan menjalankan:

show status;

dan lihat variabel open_tables. Jika ini sama dengan nilai table_cache Anda, dan opened_tables Terus naik, maka Anda perlu meningkatkan nilai table_cache Di file konfigurasi Anda. Anda akan menemukan keseimbangan dengan bereksperimen dengan variabel-variabel ini selama masa puncak. Anda ingin mengkonfigurasinya sehingga pada waktu-waktu puncak, jumlah opened_tables Yang rendah, bahkan setelah server telah aktif untuk waktu yang lama.

key_buffer_size Juga merupakan variabel yang baik untuk bereksperimen. Variabel ini mempengaruhi ukuran buffer indeks, dan membuat variabel ini lebih besar meningkatkan kecepatan penanganan indeks MySQL. Anda dapat melihat variabel dengan perintah show variables; Lagi, dan bandingkan key_read_requests Dengan key_reads. Idealnya, Anda ingin rasio antara kedua variabel serendah mungkin, dan Anda dapat melakukan ini dengan meningkatkan ukuran key_buffer_size. Jika Anda menetapkan variabel ini lebih tinggi, Anda akan memiliki lebih sedikit menulis dan membaca langsung ke dan dari disk, yang merupakan perhatian utama Anda.

20
James

Anda perlu mengubah nilai dalam my.cnf file dan mulai ulang MySQL, meskipun Anda dapat mengubah banyak dari mereka saat MySQL sedang berjalan juga ('SET GLOBAL VARIABLE = value ').

Anda mungkin ingin melihat peningkatan key_buffer_size, sort_buffer, read_buffer dan table_cache sebagai permulaan dan mungkin innodb_buffer_pool_size, jika Anda memiliki tabel InnoDB. Beberapa nilai-nilai ini Anda dapat meningkatkan jauh (bahkan dua kali lipat) terutama diberikan perangkat keras Anda. Default MySQL sangat konservatif dan tampaknya ditujukan untuk desktop multi-guna umum sekitar sepuluh tahun yang lalu. Oh, dan berhati-hatilah bahwa versi 32-bit akan mengalami kesulitan menggunakan lebih dari 2GB RAM.

Lihat di Manual MySQL untuk informasi dan panduan lebih lanjut.

6
staticsan