首頁 >資料庫 >mysql教程 >mysql連線數指的是什麼

mysql連線數指的是什麼

WBOY
WBOY轉載
2023-05-26 13:41:131721瀏覽

mysql連線數是指資料庫最多能夠同時接受的客戶連線數。 MySQL連線數是一個必須要考慮到的元件,它可以在幫助資料庫能夠安全運行的同時,最大化資料庫目前的效能;MySQL連線數是一個重要的配置,它可以影響資料庫中用戶端傳輸和處理的數據量。當連線數過少時,連線請求可能會受阻且出現逾時;而當連線數過多時會消耗大量內存,導致效能降低。

mysql連線數介紹

資料庫連線數,即資料庫最多能夠同時接受的客戶連線數。

MySQL 連線數是一個必須要考慮到的元件,它可以在幫助資料庫能夠安全運作的同時,最大化資料庫目前的效能。 "Maximum Connection" is another term for controlling which clients can connect to the database.。

配置MySQL連線數的重要性在於它會直接影響資料庫處理、傳輸客戶端資料的效率。如果 MySQL 連線數太小,可能導致連線請求阻塞而發生逾時;如果 MySQL 連線數太大,會佔用大量的內存,導致效能低。因此,MySQL 的連線數要合理地設定。

MySQL 的連線數可以透過MySQL 的設定檔my.cnf 來調整,也可以使用以下MySQL 指令動態調整:

SET GLOBAL max_connections=300;

上述指令可以將MySQL 最大連線數設定為300,也可以在對應的my.cnf 檔案中設定這個參數:

max_connections=300

MySQL 的連線數可以用下面的MySQL 指令檢查:

SHOW STATUS LIKE 'Max_used_connections';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| Max_used_connections    | 123   |
+-------------------------+-------+

這句話可以改寫為:在VW系統中,允許最多123個連線同時存取MySQL。它也有助於評估系統目前的最大連線數是否合理:

  • 如果數值較高,表示系統同時可能有大量的客戶端存取MySQL,這時最好考慮調整MySQL的最大連線數;

  • 如果數值較小,表示未能全面利用系統的可用資源,這時可以考慮增加MySQL 的最大連線數。

需要注意MySQL的連接數,因為它對於系統的安全性和效能有重要影響。因此要對其合理調整,以最大化地擴大 MySQL 效能。

Mysql怎麼查看連接數(連接總數、活躍數、最大並發數)

show variables like '%max_connection%'; 查看最大连接数
set global max_connections=1000;        重新设置最大连接数
<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;

如果是root帳號,你可以看到所有使用者目前的連線。如果是其它普通帳號,只能看到自己所佔用的連線。

show processlist指令只列出前100條,如果想全列請使用show full processlist;

mysql> show processlist;

指令:show status;

mysql>show status like &#39;%变量名%&#39;;

變數名稱如下:

  • Aborted_clients 由於客戶沒有正確關閉連線已經死掉,已經放棄的連線數量。

  • Aborted_connects 嘗試已經失敗的MySQL伺服器的連線的次數。

  • Connections 試圖連接MySQL伺服器的次數。

  • Created_tmp_tables 當執行語句時,已經被創造了的隱含臨時表的數量。

  • Delayed_insert_threads 正在使用的延遲插入處理器執行緒的數量。

  • Delayed_writes 用INSERT DELAYED寫入的行數。

  • 行數發生了錯誤(如重複鍵值)的 INSERT DELAYED 寫入。

  • Flush_commands 執行FLUSH指令的次數。

  • Handler_delete 請求從一張表中刪除行的次數。

  • Handler_read_first 要求讀入表格中第一行的次數。

  • Handler_read_key 請求數字基於鍵讀行。

  • Handler_read_next 請求讀入基於一個鍵的一行的次數。

  • Handler_read_rnd 請求讀入基於一個固定位置的一行的次數。

  • Handler_update 請求更新表格中一行的次數。

  • Handler_write 請求向表格中插入一行的次數。

  • Key_blocks_used 用於關鍵字快取的區塊的數量。

  • Key_read_requests 請求從快取讀入一個鍵值的次數。

  • Key_reads 從磁碟物理讀入一個鍵值的次數。

  • Key_write_requests 請求將一個關鍵字區塊寫入快取次數。

  • Key_writes 將一個鍵值區塊物理寫入磁碟的次數。

  • Max_used_connections 同時使用的連接的最大數目。

  • Not_flushed_key_blocks 在鍵快取中已經改變但是還沒被清空到磁碟上的鍵區塊。

  • 該語句的重新表達: "Not_flushed_delayed_rows"表示INSERT DELAY佇列中尚未寫入的行數。

  • Open_tables 開啟表格的數量。

  • Open_files 開啟檔案的數量。

  • Open_streams 開啟流的數量(主要用於日誌記載)

  • Opened_tables 已經開啟的表的數量。

  • Questions 傳送到伺服器的查詢的數量。

  • Slow_queries 要花超過long_query_time時間的查詢數量。

  • Threads_connected 目前開啟的連線的數量。

  • Threads_running 不在睡眠的執行緒數。

  • Uptime 伺服器工作了多長時間,單位秒。

#

以上是mysql連線數指的是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除