Rumah  >  Artikel  >  pangkalan data  >  Contoh terperinci tentang cara menyelesaikan masalah yang MySQL mengambil terlalu banyak memori

Contoh terperinci tentang cara menyelesaikan masalah yang MySQL mengambil terlalu banyak memori

WBOY
WBOYke hadapan
2022-07-06 14:03:122999semak imbas

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.

Contoh terperinci tentang cara menyelesaikan masalah yang MySQL mengambil terlalu banyak memori

Pembelajaran yang disyorkan: tutorial video mysql

Kata Pengantar

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):

Contoh terperinci tentang cara menyelesaikan masalah yang MySQL mengambil terlalu banyak memori

MySQL pelayan memerlukan Ia menduduki 400M, jadi ia tidak mempunyai banyak daya pengeluaran Ia hanya untuk keseronokan. . .

Penyelesaian

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.

Cari fail konfigurasi

Windows Service 2016

Lokasi lalai fail konfigurasi ialah C: ProgramDataMySQLMySQL Server 8.0 my.ini, jika terdapat sebarang pengubahsuaian, cari berdasarkan situasi sebenar anda.

CentOS7

Laluan lalai fail konfigurasi adalah dalam /etc/my.cnf, jika diubah suai, anda boleh mencarinya mengikut situasi sebenar anda.

Ubah suai fail konfigurasi

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:

  1. 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.

  2. 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].

  3. 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 semula MySQL

Perkhidmatan Windows 2016

Mulakan konsol sebagai pentadbir, masukkan net stop mysql, dan kemudian Masukkan net mulakan mysql.

Selepas dimulakan semula, ia masih menduduki 62M.

Contoh terperinci tentang cara menyelesaikan masalah yang MySQL mengambil terlalu banyak memori

CentOS7

Masukkan perkhidmatan mysqld restart pada konsol untuk memulakan semula.

Contoh terperinci tentang cara menyelesaikan masalah yang MySQL mengambil terlalu banyak memori

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.

Contoh terperinci tentang cara menyelesaikan masalah yang MySQL mengambil terlalu banyak memori

Postskrip

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!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam