Rumah >pangkalan data >tutorial mysql >Apakah yang dimaksudkan dengan bilangan sambungan mysql?
Bilangan sambungan mysql merujuk kepada bilangan maksimum sambungan pelanggan yang pangkalan data boleh terima pada masa yang sama. Bilangan sambungan MySQL adalah komponen yang mesti dipertimbangkan Ia boleh membantu pangkalan data berjalan dengan selamat sambil memaksimumkan prestasi semasa pangkalan data Bilangan sambungan MySQL adalah konfigurasi penting yang boleh menjejaskan penghantaran dan pemprosesan klien dalam pangkalan data. Jumlah data. Apabila bilangan sambungan terlalu sedikit, permintaan sambungan mungkin disekat dan tamat masa apabila terdapat terlalu banyak sambungan, sejumlah besar memori akan digunakan, mengakibatkan prestasi berkurangan.
Pengenalan kepada bilangan sambungan mysql
Bilangan sambungan pangkalan data, iaitu bilangan maksimum sambungan pelanggan yang pangkalan data boleh terima di masa yang sama.
Bilangan sambungan MySQL adalah komponen yang mesti dipertimbangkan Ia boleh membantu pangkalan data berjalan dengan selamat sambil memaksimumkan prestasi semasa pangkalan data. "Sambungan Maksimum" adalah istilah lain untuk mengawal klien mana yang boleh menyambung ke pangkalan data..
Kepentingan mengkonfigurasi bilangan sambungan MySQL ialah ia secara langsung akan menjejaskan kecekapan pemprosesan pangkalan data dan penghantaran data pelanggan. Jika bilangan sambungan MySQL terlalu kecil, permintaan sambungan mungkin disekat dan tamat masa mungkin berlaku jika bilangan sambungan MySQL terlalu besar, jumlah memori yang besar akan diduduki, mengakibatkan prestasi rendah. Oleh itu, bilangan sambungan MySQL mesti ditetapkan dengan munasabah.
Bilangan sambungan MySQL boleh dilaraskan melalui fail konfigurasi MySQL my.cnf, atau dilaraskan secara dinamik menggunakan arahan MySQL berikut:
SET GLOBAL max_connections=300;
Arahan di atas boleh menetapkan bilangan maksimum sambungan MySQL hingga 300. Parameter ini juga boleh ditetapkan dalam fail my.cnf yang sepadan:
max_connections=300
Bilangan sambungan MySQL boleh disemak dengan arahan MySQL berikut:
SHOW STATUS LIKE 'Max_used_connections'; +-------------------------+-------+ | Variable_name | Value | +-------------------------+-------+ | Max_used_connections | 123 | +-------------------------+-------+
Ayat ini boleh ditulis semula sebagai: Dalam VW Dalam sistem, sehingga 123 sambungan dibenarkan untuk mengakses MySQL pada masa yang sama. Ia juga membantu untuk menilai sama ada bilangan maksimum sambungan semasa dalam sistem adalah munasabah:
Jika nilainya tinggi, ini menunjukkan bahawa sistem mungkin mempunyai sejumlah besar pelanggan yang mengakses MySQL pada masa yang sama. Pada masa ini, sebaiknya pertimbangkan untuk melaraskan MySQL Bilangan maksimum sambungan; digunakan sepenuhnya Pada masa ini, anda boleh mempertimbangkan untuk menambah bilangan maksimum sambungan MySQL.
Anda perlu memberi perhatian kepada bilangan sambungan MySQL kerana ia mempunyai kesan penting terhadap keselamatan dan prestasi sistem. Oleh itu, ia perlu diselaraskan dengan sewajarnya untuk memaksimumkan prestasi MySQL.
show variables like '%max_connection%'; 查看最大连接数 set global max_connections=1000; 重新设置最大连接数
rreee<strong> </strong>
<pre class="brush:bash;gutter:true;">mysql> show status like &#39;Threads%&#39;;
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_cached | 32 |
| Threads_connected | 10 |
| Threads_created | 50 |
| Threads_rejected | 0 |
| Threads_running | 1 |
+-------------------+-------+
5 rows in set (0.00 sec)</pre><ul class=" list-paddingleft-2">
<li><p>Threads_connected :这个数值指的是打开的连接数.</p></li>
<li><p>Threads_running :这个数值指的是激活的连接数,这个数值一般远低于connected数值.</p></li>
<li><p>如果Threads_connected和show processlist的结果相同,则表明当前有多少个连接。准确的来说,Threads_running是代表当前并发数</p></li>
</ul>
<p>查询数据库当前设置的最大连接数</p><pre class="brush:bash;gutter:true;"><code>mysql> show variables like &#39;%max_connection%&#39;;<br/>+-----------------------+-------+<br/>| Variable_name | Value |<br/>+-----------------------+-------+<br/>| extra_max_connections | |<br/>| max_connections | 2512 |<br/>+-----------------------+-------+<br/>2 rows in set (0.00 sec)<br/></code></pre><p>在/etc/my.cnf里面设置数据库的最大连接数</p><pre class="brush:js;toolbar:false">[mysqld]
max_connections = 100
</pre><p>为了确保 MySQL 服务器的稳健运行,线程数应该控制在合理的范围内。Threads_created表示创建过的线程数,通过查看Threads_created就可以查看MySQL服务器的进程状态。</p><pre class="brush:bash;gutter:true;"><code>mysql> show global status like &#39;Thread%&#39;;<br/>+-------------------------+-------+<br/>| Variable_name | Value |<br/>+-------------------------+-------+<br/>| Threadpool_idle_threads | 0 |<br/>| Threadpool_threads | 0 |<br/>| Threads_cached | 29 |<br/>| Threads_connected | 13 |<br/>| Threads_created | 50 |<br/>| Threads_rejected | 0 |<br/>| Threads_running | 1 |<br/>+-------------------------+-------+<br/>7 rows in set (0.00 sec)<br/></code></pre><p>如果我们在MySQL服务器配置文件中设置了thread_cache_size,当客户端断开之后,服务器处理此客户的线程将会缓存起来以响应下一个客户而不是销毁(前提是缓存数未达上限)。</p>
<p>Threads_created表示创建过的线程数,如果发现Threads_created值过大的话,表明MySQL服务器一直在创建线程,这也是比较耗资源,可以适当增加配置文件中thread_cache_size值,查询服务器thread_cache_size的值:</p><pre class="brush:bash;gutter:true;"><code>mysql> show variables like &#39;thread_cache_size&#39;;<br/>+-------------------+-------+<br/>| Variable_name | Value |<br/>+-------------------+-------+<br/>| thread_cache_size | 100 |<br/>+-------------------+-------+<br/>1 row in set (0.00 sec)<br/></code></pre><p>命令:<code>show processlist;
Threads_running: Nilai ini merujuk kepada bilangan sambungan yang diaktifkan secara amnya nilai ini jauh lebih rendah daripada nilai bersambung.
show full processlist;
show status;
Soal bilangan maksimum sambungan yang sedang ditetapkan dalam pangkalan data
mysql> show processlist;
mysql>show status like '%变量名%';
Untuk memastikan operasi pelayan MySQL yang mantap, bilangan utas harus dikawal dalam julat yang munasabah. Threads_created menunjukkan bilangan utas yang dibuat Dengan melihat Threads_created, anda boleh melihat status proses pelayan MySQL.
rrreeeThreads_created menunjukkan bilangan utas yang dibuat Jika nilai Threads_created didapati terlalu besar, ini menunjukkan bahawa pelayan MySQL telah membuat thread, yang juga agak memakan sumber nilai thread_cache_size dalam fail konfigurasi dan tanya nilai pelayan thread_cache_size :
rrreeeArahan tunjukkan senarai proses hanya menyenaraikan 100 item pertama Jika anda ingin menyenaraikan semuanya, sila gunakan
Handler_read_rnd meminta bilangan kali membaca baris berdasarkan kedudukan tetap.
Handler_update Bilangan kali baris dalam jadual diminta untuk dikemas kini.
Handler_write meminta bilangan kali untuk memasukkan baris ke dalam jadual.
Key_blocks_used Bilangan blok yang digunakan untuk caching kata kunci.
Key_read_requests Bilangan kali nilai kunci diminta untuk dibaca daripada cache.
Key_reads Bilangan kali nilai kunci dibaca secara fizikal daripada cakera.
Key_write_requests Meminta bilangan kali blok kata kunci harus ditulis pada cache.
Key_writes Bilangan kali blok nilai kunci ditulis secara fizikal pada cakera.
Max_used_connections Bilangan maksimum sambungan yang digunakan serentak.
Not_flushed_key_blocks Blok utama yang telah berubah dalam cache kunci tetapi masih belum dialihkan ke cakera.
Ungkapan semula kenyataan ini: "Not_flushed_delayed_rows" menunjukkan bilangan baris yang belum ditulis dalam baris gilir INSERT DELAY.
Open_tables Bilangan jadual terbuka.
Open_files Bilangan fail yang dibuka.
Open_streams Bilangan strim terbuka (terutama digunakan untuk pengelogan)
Opened_tables Bilangan jadual yang telah dibuka.
Soalan Bilangan pertanyaan yang dihantar ke pelayan.
Slow_query Bilangan pertanyaan yang mengambil masa lebih lama daripada long_query_time.
Threads_connected Bilangan sambungan yang sedang dibuka.
Threads_running Bilangan utas yang tidak tidur.
Masa Operasi Berapa lama pelayan telah berfungsi, dalam beberapa saat.
Atas ialah kandungan terperinci Apakah yang dimaksudkan dengan bilangan sambungan mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!