首頁 > 資料庫 > mysql教程 > mysql連線數是什麼意思

mysql連線數是什麼意思

青灯夜游
發布: 2023-04-04 15:15:53
原創
4007 人瀏覽過

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

mysql連線數是什麼意思

本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。

mysql連線數介紹

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

MySQL 連線數是一個必須要考慮到的元件,它可以在幫助資料庫能夠安全運作的同時,最大化資料庫目前的效能。它用來控制哪些客戶可以連接到資料庫,又稱作「Maximum Connection」。

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   |
+-------------------------+-------+
登入後複製

上面的值123 表示VW 系統上最多同時有123 個連線存取MySQL。它也有助於評估系統目前的最大連線數是否合理:

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

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

總的來說,MySQL 的連線數是必須考慮的一個元件,它對於系統安全性和效能有著重要影響。因此要對其合理調整,以最大化地擴大 MySQL 效能。

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

show variables like '%max_connection%'; 查看最大连接数
set global max_connections=1000;        重新设置最大连接数
登入後複製
mysql> show status like  'Threads%';
+-------------------+-------+
| 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)
登入後複製
  • Threads_connected :這個數值指的是開啟的連線數.

  • Threads_running :這個數值指的是啟動的連線數,這個數值一般遠低於connected數值.

  • Threads_connected 跟show processlist結果相同,表示目前連線數。準確的來說,Threads_running是代表當前並發數

查詢資料庫目前設定的最大連接數

mysql> show variables like '%max_connection%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| extra_max_connections |       |
| max_connections       | 2512  |
+-----------------------+-------+
2 rows in set (0.00 sec)
登入後複製

在/etc/my. cnf裡面設定資料庫的最大連線數

[mysqld]
max_connections = 100
登入後複製
MySQL伺服器的執行緒數需要在合理的範圍內,這樣才能確保MySQL伺服器健康平穩地運行。 Threads_created表示已建立的執行緒數,透過查看Threads_created就可以查看MySQL伺服器的進程狀態。
mysql> show global status like 'Thread%';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| Threadpool_idle_threads | 0     |
| Threadpool_threads      | 0     |
| Threads_cached          | 29    |
| Threads_connected       | 13    |
| Threads_created         | 50    |
| Threads_rejected        | 0     |
| Threads_running         | 1     |
+-------------------------+-------+
7 rows in set (0.00 sec)
登入後複製

如果我們在MySQL伺服器設定檔中設定了thread_cache_size,當客戶端斷開之後,伺服器處理此客戶的執行緒將會快取起來回應下一個客戶而不是銷毀(前提是快取數未達上限)。

Threads_created表示創建過的線程數,如果發現Threads_created值過大的話,表示MySQL伺服器一直在建立線程,這也是比較耗資源,可以適當增加設定檔中thread_cache_size值,查詢伺服器thread_cache_size的值:

mysql> show variables like 'thread_cache_size';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| thread_cache_size | 100   |
+-------------------+-------+
1 row in set (0.00 sec)
登入後複製

命令:show processlist;

如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。

show processlist命令只列出前100条,如果想全列出请使用show full processlist;

mysql> show processlist;
登入後複製

命令:show status;

mysql>show status like '%变量名%';
登入後複製

变量名如下:

  • Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。

  • Aborted_connects 尝试已经失败的MySQL服务器的连接的次数。

  • Connections 试图连接MySQL服务器的次数。

  • Created_tmp_tables 当执行语句时,已经被创造了的隐含临时表的数量。

  • Delayed_insert_threads 正在使用的延迟插入处理器线程的数量。

  • Delayed_writes 用INSERT DELAYED写入的行数。

  • Delayed_errors 用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视频教程

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板