1、顯示mysql當前狀態 mysqladmin -uroot -p status Uptime: 182341 Threads: 7 Questions: 2831137 Slow queries: 0 Opens: 1536 Flush tables: 3 Open tables: 1171 Queries per second avg: 15.526 Uptime: 182341 MySQL服務器已經運行的秒數 Threads: 7 活躍線程(客戶)的數量 Questions: 2831137 從mysqld啟動起來自客戶查詢的數量 Slow queries: 0 已經超過long_query_time的查詢數量 Opens: 1536 已經打開了多少表 Flush tables: 3
Open tables: 1171 現在被打開的表數量 Queries per second avg: 15.526 查詢平均用時 2、連接數max_connections sql> show variables like '%connections%'; +------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| max_connections | 2000 |
| max_user_connections | 0 |
| mysqlx_max_connections | 100 |
+------------------------+-------+
如果連接數達到最大連接數,那不管剩余多少資源,用戶的連接請求都會阻塞在外面。 max_connections,最大連接數,默認100,一般經驗設置3000。win服務器連接數支持1500-1800,linux服務器可以支持8000個左右。 另外設置max_user_connections=0,表示不限制用戶的最大連接數,其最大值可以等於max_connections sql> show global status like 'max_used_connections'; 檢查曾經使用最大的連接數,這個值在max_connections的85%左右比較合適,過高,則會系統使用連接數過少,系統負荷過高。 3、查看 Mysql 連接數、狀態、最大並發數 sql> show status like '%max_connections%'; ##mysql最大連接數 sql> set global max_connections=1000 ##重新設置 sql> show variables like '%max_connections%'; ##查詢數據庫當前設置的最大連接數 sql> show global status like 'Max_used_connections'; ##服務器響應的最大連接數 sql> show status like 'Threads%'; +-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_cached | 34 |
| Threads_connected | 32 |
| Threads_created | 66 |
| Threads_running | 2 |
+-------------------+-------+
4 rows in set 參數說明: Threads_cached 34 ##mysql管理的線程池中還有多少可以被復用的資源 Threads_connected 32 ##打開的連接數 Threads_created 66 ##代表新創建的thread(根據官方文檔,如果thread_created增大迅速,需要適當調高 thread_cache_size)。 Threads_running 2 ##激活的連接數,這個數值一般遠低於connected數值,准確的來說,Threads_running是代表當前並發數 sql> show variables like 'thread_cache_size'; sql> set global thread_cache_size=60;