mysql 連線 優化 (一)MySQL 連線優化

2021-10-17 12:28:32 字數 3530 閱讀 7646

1.檢視連線引數(show variables)

mysql> show variables like 『%connect%『;

| variable_name | value |

| character_set_connection | utf8 |

| collation_connection | utf8_general_ci |

| connect_timeout | 10 |

| disconnect_on_expired_password | on |

| init_connect | |

| max_connect_errors | 100 |

| max_connections | 151 |

| max_user_connections | 0 |

| performance_schema_session_connect_attrs_size | 512 |

2.檢視連線狀態(show status)

mysql> show status like 『%connections%『;

| variable_name | value |

| connection_errors_max_connections | 0 |

| connections | 197 |

| max_used_connections | 2 |

connection_errors_max_connections 當mysql的最大併發數大於系統變數(show variables)中max_connections的最大併發數,因此而被拒絕的次數,將會記錄在這個變數裡。如果connection_error_max_connections值比較大,則說明當前系統併發比較高,要考慮調大max_connections的值。

connections表示mysql從啟動至今,成功建立連線的連線數,這個值是不斷累加的。

max_used_connections表示mysql從啟動至今,同一時刻併發的連線數,取得是最大值。如果這個值大於 max_connections則表明系統經常處於高併發的狀態,應該考慮調大最大併發連線數。

3、連線線程引數(thread variabls and status)

mysql> show variables like 『thread%『;

| variable_name | value |

| thread_cache_size | 9 |

| thread_concurrency | 10 |

| thread_handling | one-thread-per-connection |

| thread_stack | 262144 |

thread_cache_size 設定連線線程快取的數目。這個快取相當於mysql執行緒的快取池(thread cache pool),將空閒的連線線程放入連線池中快取起來,而非立即銷毀。當有新的連線請求時,如果連線池中有空閒的連線,則直接使用。否則要重新建立執行緒。建立執行緒是乙個不小的系統開銷。

thread_handling 預設值是: one-thread-per-connection 表示為每個連線提供或者建立乙個執行緒來處理請求,直至請求完畢,連線銷毀或者存入快取池。當值是no-threads 時,表示在始終只提供乙個執行緒來處理連線,一般是單機做測試使用的。

thread_stack stack 是堆的意思,知道程序和執行緒都是有唯一的id的,程序的id系統會維護,二線程的id,則由具體的執行緒庫區維護,當程序或者執行緒休眠的時候,程序的上下文資訊要在記憶體中開闢出一塊區域,儲存程序的上下文資訊,以便於迅速喚醒程式。預設為mysql的每個執行緒設定的堆疊大小為:262144/1024=256k

4.檢視執行緒狀態資訊

mysql> show status like 『thread%『;

| variable_name | value |

| threads_cached | 1 |

| threads_connected | 1 |

| threads_created | 2 |

| threads_running | 1 |

thread_cached 當前執行緒池的執行緒數

thread_connected 當前的連線數

thread_cached: 當前連線線程建立數, 如果這個值過高,可以調整threadcachesize 也就是調整執行緒快取池的大小。

thred_runnint: 當前活躍的執行緒數。

5.連線請求堆疊

mysql在很短的時間內,突然收到很多的連線請求時,mysql會將不能來得及處理的連線請求儲存在堆疊中,以便mysql後續處理。back_log引數設定了堆疊的大小,可以通過如下命令檢視:

mysql> show variables like 『back_log『;

| variable_name | value |

| back_log | 80 |

6.連線異常

mysql> show status like 『aborted%『;

| variable_name | value |

| aborted_clients | 0 |

| aborted_connects | 219 |

aborted_clients mysql 客戶機被異常關閉的次數。

aborted_connects 試圖連線到mysql伺服器而失敗的連線次數。

7.other

mysql> show status like 『slow%『;

| variable_name | value |

| slow_launch_threads | 0 |

| slow_queries | 0 |

mysql> show variables like 『slow_launch_time『;

| variable_name | value |

| slow_launch_time | 2 |

slow_lunch_threads 建立執行緒的時間過長,超過slow_launch_time的設定值,則會記錄。

8.可以通過使用 connection_error%來檢視連線的錯誤狀態資訊:

mysql> show status like 『connection_error%『;

| variable_name | value |

| connection_errors_accept | 0 |

| connection_errors_internal | 0 |

| connection_errors_max_connections | 0 |

| connection_errors_peer_address | 0 |

| connection_errors_select | 0 |

| connection_errors_tcpwrap | 0 |

connection_errors_peer_address 查詢mysql客戶機ip位址是發生的錯誤數。

(一)mysql 連線優化

標籤:拒絕   存在   測試   sel   客戶機   休眠   客戶   like   上下

mysql優化 連線數

有時候我們會遇見 mysql error 1040 too many connections 的異常,一種原因是訪問量過高,mysqlserver抗不住,這個時候就要考慮新增從server分散讀壓力,還有一種原因就是mysql配置檔案裡max connections值過小。首先,我們來檢視mysql...

mysql優化 連線數

有時候我們會遇見 mysql error 1040 too many connections 的異常。一種原因是訪問量過高,mysqlserver抗不住。這個時候就要考慮新增從server分散讀壓力。還有一種原因就是mysql配置檔案裡max connections值過小。首先。我們來檢視mysql...

mysql連線教程 MySQL 連線

mysql 連線 使用mysql二進位制方式連線 您可以使用mysql二進位制方式進入到mysql命令提示符下來連線mysql資料庫。例項以下是從命令列中連線mysql伺服器的簡單例項 root host mysql u root p enter password 在登入成功後會出現 mysql 命...