Rumah >masalah biasa >Apakah bilangan maksimum sambungan dalam mysql
Bilangan maksimum sambungan mysql ialah 151. Bilangan maksimum sambungan ke pangkalan data mysql merujuk kepada bilangan maksimum sambungan yang boleh diwujudkan dengan pangkalan data mysql pada masa yang sama Nombor ini penting untuk aplikasi web dengan trafik tinggi dan aplikasi perusahaan besar melebihi, maka sambungan baharu akan gagal dibina, menyebabkan aplikasi ranap atau mengalami masalah prestasi.
Sistem pengendalian tutorial ini: sistem Windows 10, mysql versi 8.0, komputer Dell G3.
Bilangan maksimum sambungan ke pangkalan data MySQL merujuk kepada bilangan maksimum sambungan yang boleh diwujudkan dengan pangkalan data MySQL pada masa yang sama. Nombor ini penting untuk aplikasi web trafik tinggi dan aplikasi perusahaan besar. Jika bilangan maksimum sambungan melebihi, sambungan baharu tidak boleh diwujudkan, menyebabkan ranap aplikasi atau isu prestasi.
Biasanya, bilangan maksimum lalai sambungan MySQL ialah 151 dan maksimum boleh mencapai 16384.
Semak bilangan maksimum sambungan mysql:
show variables like '%max_connections%’;
Semak bilangan maksimum semasa sebenar sambungan yang digunakan:
show global status like 'Max_used_connections';
Adalah lebih sesuai untuk bilangan sambungan sebenar ialah 85% daripada bilangan maksimum sambungan, jadi kita boleh tetapkan bilangan maksimum sambungan berdasarkan bilangan sambungan sebenar (jika anda ingin menetapkan bilangan maksimum sambungan melebihi 1024, anda juga perlu mengubah suai had atas deskriptor fail).
Berfikir: Adakah yang terbaik untuk menetapkan bilangan sambungan kepada maksimum (16384)?
Kami menetapkan bilangan sambungan kepada bilangan maksimum sambungan yang disokong oleh MySQL, supaya pelayan MySQL kami boleh menyokong banyak sambungan pada masa yang sama, dan kami juga jarang menemui mesej ralat:
MySQL: ERROR 1040: Too many connections
.
Walau bagaimanapun, disebabkan oleh had sumber pelayan, jika max_connections ditetapkan terlalu besar, pangkalan data akan kehabisan sumber pelayan dan menjadi tidak bertindak balas kerana mengekalkan bilangan sambungan yang besar. Kerana untuk setiap sambungan tambahan, MySQL akan mencipta benang untuk mengekalkan sambungan, dan CPU perlu memuat semula maklumat konteks benang yang sepadan apabila bertukar antara benang Apabila bilangan sambungan terus meningkat, CPU terus bertukar antara pertanyaan setiap sambungan.
Jadi, apabila menetapkan nilai max_connections yang lebih besar, mungkin terdapat risiko kemerosotan prestasi pangkalan data akibat menerima terlalu banyak sambungan, atau kegagalan untuk bertindak balas kerana kehabisan sumber.
Kolam Sambungan Pangkalan Data
Kolam sambungan pangkalan data mengekalkan cache sambungan pangkalan data supaya sambungan boleh digunakan semula apabila permintaan kepada pangkalan data perlu dibuat pada masa hadapan. Pengumpulan sambungan digunakan untuk meningkatkan prestasi melaksanakan arahan pada pangkalan data. Kerana setiap kali anda menyambung ke pangkalan data, anda perlu melalui sambungan TCP Jika anda perlu menyambung setiap kali anda mengakses pangkalan data, kemudian tutupnya, dan kemudian sambung semula pada kali berikutnya anda mengaksesnya, ia akan menjadi satu pembaziran. sumber, jadi kami meletakkan sambungan yang dibuat dalam sambungan Di dalam kolam, ambilnya apabila anda memerlukannya, dan masukkan semula ke dalam kumpulan sambungan apabila anda tidak memerlukannya (bertukar ruang untuk masa).
Apabila bilangan sambungan yang diminta oleh aplikasi daripada kumpulan sambungan melebihi bilangan sambungan maksimum, permintaan ini akan ditambahkan pada baris gilir menunggu.
Berfikir: Adakah lebih besar kumpulan sambungan pangkalan data, lebih baik?
Bukankah lebih baik jika kita menetapkan kumpulan sambungan pangkalan data untuk sama dengan bilangan maksimum sambungan MySQL? Ia boleh memastikan bahawa perkhidmatan kami mempunyai bilangan maksimum sambungan yang tersedia Setiap kali permintaan pangkalan data datang, kami mempunyai sambungan percuma untuk digunakan.
Dalam kes ini, kami kembali kepada masalah yang kami hadapi di atas (yang mungkin membawa kepada risiko kemerosotan prestasi pelayan kerana mengekalkan terlalu banyak sambungan pangkalan data, atau kegagalan untuk bertindak balas kerana kehabisan sumber)
Atas ialah kandungan terperinci Apakah bilangan maksimum sambungan dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!