Rumah  >  Artikel  >  pangkalan data  >  Apakah yang dimaksudkan dengan bilangan sambungan mysql?

Apakah yang dimaksudkan dengan bilangan sambungan mysql?

WBOY
WBOYke hadapan
2023-05-26 13:41:131473semak imbas

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.

Cara menyemak bilangan sambungan dalam Mysql (jumlah bilangan sambungan, nombor aktif, bilangan maksimum sambungan serentak)

show variables like '%max_connection%'; 查看最大连接数
set global max_connections=1000;        重新设置最大连接数

rreee<strong> </strong>

Threads_connected: Nilai ini merujuk kepada bilangan sambungan terbuka.<pre class="brush:bash;gutter:true;">mysql&gt; show status like &amp;#39;Threads%&amp;#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;">&lt;code&gt;mysql&gt; show variables like &amp;#39;%max_connection%&amp;#39;;&lt;br/&gt;+-----------------------+-------+&lt;br/&gt;| Variable_name | Value |&lt;br/&gt;+-----------------------+-------+&lt;br/&gt;| extra_max_connections | |&lt;br/&gt;| max_connections | 2512 |&lt;br/&gt;+-----------------------+-------+&lt;br/&gt;2 rows in set (0.00 sec)&lt;br/&gt;&lt;/code&gt;</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;">&lt;code&gt;mysql&gt; show global status like &amp;#39;Thread%&amp;#39;;&lt;br/&gt;+-------------------------+-------+&lt;br/&gt;| Variable_name | Value |&lt;br/&gt;+-------------------------+-------+&lt;br/&gt;| Threadpool_idle_threads | 0 |&lt;br/&gt;| Threadpool_threads | 0 |&lt;br/&gt;| Threads_cached | 29 |&lt;br/&gt;| Threads_connected | 13 |&lt;br/&gt;| Threads_created | 50 |&lt;br/&gt;| Threads_rejected | 0 |&lt;br/&gt;| Threads_running | 1 |&lt;br/&gt;+-------------------------+-------+&lt;br/&gt;7 rows in set (0.00 sec)&lt;br/&gt;&lt;/code&gt;</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;">&lt;code&gt;mysql&gt; show variables like &amp;#39;thread_cache_size&amp;#39;;&lt;br/&gt;+-------------------+-------+&lt;br/&gt;| Variable_name | Value |&lt;br/&gt;+-------------------+-------+&lt;br/&gt;| thread_cache_size | 100 |&lt;br/&gt;+-------------------+-------+&lt;br/&gt;1 row in set (0.00 sec)&lt;br/&gt;&lt;/code&gt;</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;

Jika keputusan Threads_connected dan tunjukkan senarai proses adalah sama, ia menunjukkan bilangan sambungan yang ada pada masa ini. Tepatnya, Threads_running mewakili bilangan konkurensi semasa

show status;

Soal bilangan maksimum sambungan yang sedang ditetapkan dalam pangkalan data

mysql> show processlist;
    Tetapkan bilangan maksimum pangkalan data dalam /etc /my.cnf Bilangan sambungan
  • mysql>show status like &#39;%变量名%&#39;;
    

    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.

    rrreee
  • Jika kami menetapkan thread_cache_size dalam fail konfigurasi pelayan MySQL, apabila klien memutuskan sambungan, pemprosesan benang pelayan klien ini akan dicache untuk bertindak balas kepada klien seterusnya dan bukannya dimusnahkan (dengan syarat nombor cache belum telah mencapai had atas).
  • Threads_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 :

    rrreee
  • Arahan: tunjukkan senarai proses; sambungan semasa semua pengguna. Jika ia adalah satu lagi akaun biasa, anda hanya boleh melihat sambungan yang diduduki oleh anda.
  • Arahan tunjukkan senarai proses hanya menyenaraikan 100 item pertama Jika anda ingin menyenaraikan semuanya, sila gunakan tunjukkan senarai proses penuh; status;

  • rrreee
  • Nama pembolehubah adalah seperti berikut:

  • Aborted_clients Bilangan sambungan yang telah ditinggalkan kerana klien tidak menutup sambungan dengan betul dan meninggal dunia.

  • Aborted_connects Bilangan percubaan untuk menyambung ke pelayan MySQL yang telah gagal.

  • Sambungan Bilangan percubaan untuk menyambung ke pelayan MySQL.

  • Created_tmp_tables Bilangan jadual sementara tersirat yang telah dibuat apabila pernyataan itu dilaksanakan.

  • Delayed_insert_threads Bilangan utas pemproses pemasukan tertunda yang digunakan.

  • Delayed_writes Bilangan baris yang ditulis dengan INSERT DELAYED.

  • Bilangan baris yang ralat (seperti nilai kunci pendua) berlaku telah INSERT DELAYED ditulis.

  • Flush_commands Bilangan kali arahan FLUSH dilaksanakan.

    Handler_delete Bilangan kali baris diminta untuk dipadamkan daripada jadual. Handler_read_first meminta bilangan kali untuk membaca baris pertama dalam jadual. Handler_read_key Meminta nombor untuk membaca baris berdasarkan kekunci. Handler_read_next Meminta bilangan kali membaca baris berdasarkan kekunci.
  • 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!

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