Rumah > Artikel > pangkalan data > Contoh terperinci tentang cara menyelesaikan masalah yang MySQL mengambil terlalu banyak memori
Artikel ini membawakan anda pengetahuan yang berkaitan tentang mysql Ia terutamanya menyelesaikan masalah berkaitan penggunaan memori yang berlebihan dan masing-masing menggunakan dua sistem, Windows dan CentOS7, untuk menyelesaikan masalah ini bersama-sama, saya harap ia akan membantu semua orang.
Pembelajaran yang disyorkan: tutorial video mysql
Bagi sesetengah pemain borjuasi kecil, bilangan pelayan dan Memori selalunya sangat terhad Contohnya, konfigurasi pelayan peribadi saya ialah 2 teras 4G5M.
Memori 4G sebenarnya tidak besar untuk pemain Java Jika anda membuka beberapa perisian tengah, perkhidmatan mikro anda sendiri benar-benar sesak, dan kemudian anda perlu berhadapan dengan musuh besar MySQL. MySQL pada komputer tempatan saya hanya menduduki beberapa MB memori (walaupun saya tidak menggunakannya sangat, MySQL pada komputer ini sememangnya terbuka):
MySQL pelayan memerlukan Ia menduduki 400M, jadi ia tidak mempunyai banyak daya pengeluaran Ia hanya untuk keseronokan. . .
Saya mengetahui bahawa penggunaan memori MySQL boleh dikurangkan dengan mengubah suai konfigurasi, jadi saya mencuba dan merekodkannya. Memandangkan saya mempunyai dua pelayan pada masa yang sama, satu dipasang dengan Windows Service 2016, dan satu lagi dipasang dengan CentOS7 Keadaan pada kedua-dua pelayan adalah serupa, jadi saya akan membuat dua rekod pada masa yang sama untuk rujukan anda.
Lokasi lalai fail konfigurasi ialah C: ProgramDataMySQLMySQL Server 8.0 my.ini, jika terdapat sebarang pengubahsuaian, cari berdasarkan situasi sebenar anda.
Laluan lalai fail konfigurasi adalah dalam /etc/my.cnf, jika diubah suai, anda boleh mencarinya mengikut situasi sebenar anda.
Anda boleh menggunakan Ctrl F untuk mencari pada Windows dan '/key' di Linux Jika anda tidak tahu caranya, anda boleh merujuk ke Baidu.
Ada tiga perkara yang perlu kami cari dan ubah suai:
Cari table_definition_cache
, kami ubah suai kepada 400
Penjelasan rasmi ialah: OK Bilangan definisi jadual (daripada fail .frm) yang disimpan dalam cache definisi. Jika anda menggunakan sebilangan besar jadual, anda boleh mencipta cache definisi jadual yang besar untuk mempercepatkan pembukaan jadual. Tidak seperti cache jadual biasa, cache definisi jadual mengambil lebih sedikit ruang dan tidak menggunakan deskriptor fail. Nilai minimum dan lalai ialah 400.
Cari table_open_cache
, kami menukarnya kepada 256
Setiap kali MySQL membuka jadual, ia akan membaca beberapa data ke dalam cache table_open_cache apabila MySQL mencarinya dalam cache ini Apabila maklumat yang sepadan tidak tersedia, ia akan dibaca dari cakera.
Penjelasan rasmi ialah: bilangan jadual terbuka untuk semua urutan. Meningkatkan nilai ini meningkatkan bilangan deskriptor fail yang diperlukan oleh mysqld. Oleh itu, anda mesti memastikan bahawa bilangan fail yang dibenarkan untuk dibuka ditetapkan kepada sekurang-kurangnya 4096 dalam pembolehubah "had fail terbuka" dalam bahagian [mysqld safe].
Cari performance_schema
dan tukar kepada mati
Jika anda tidak menemui ini, cuma tambahkan performance_schema = off
di tempat yang sesuai.
digunakan untuk memantau penggunaan sumber, menunggu sumber, dsb. pelayan MySQL semasa operasi peringkat rendah Selepas ditutup, ia boleh menjimatkan kos dan tidak akan mengubah tingkah laku pelayan.
Selepas pengubahsuaian, simpan dan keluar.
Mulakan konsol sebagai pentadbir, masukkan net stop mysql, dan kemudian Masukkan net mulakan mysql.
Selepas dimulakan semula, ia masih menduduki 62M.
Masukkan perkhidmatan mysqld restart pada konsol untuk memulakan semula.
Jika itu tidak berjaya, anda boleh mencuba perintah /etc/init.d/mysqld restart
.
Selepas dimulakan semula, ia mengambil masa 92M, iaitu lebih sedikit daripada Windows.
Kaedah ini memang boleh mengurangkan penggunaan memori mysql, tetapi saya hanya mengurangkan prestasi sebagai pertukaran untuk memori Jika throughput adalah If the keperluan adalah agak tinggi, ia pasti tidak boleh diubah suai secara langsung seperti ini, dan mesti diselaraskan mengikut keperluan sebenar.
Pembelajaran yang disyorkan: tutorial video mysql
Atas ialah kandungan terperinci Contoh terperinci tentang cara menyelesaikan masalah yang MySQL mengambil terlalu banyak memori. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!