這篇文章主要介紹了MySQL性能優化之max_connections配置參數淺析,本文着重講解了3種配置max_connections參數的方法,需要的朋友可以參考下 MySQL的max_connections參數用來設置最大連接(用戶)數。每個連接MySQL的用戶均算作一個連接,max_connections的默認值為100。本文將講解此參數的詳細作用與性能影響。 與max_connections有關的特性 MySQL無論如何都會保留一個用於管理員(SUPER)登陸的連接,用於管理員連接數據庫進行維護操作,即使當前連接數已經達到了max_connections。因此MySQL的實際最大可連接數為max_connections+1; 這個參數實際起作用的最大值(實際最大可連接數)為16384,即該參數最大值不能超過16384,即使超過也以16384為准; 增加max_connections參數的值,不會占用太多系統資源。系統資源(CPU、內存)的占用主要取決於查詢的密度、效率等; 該參數設置過小的最明顯特征是出現”Too many connections”錯誤; 我們先來看下如何查看當前mysql的max_connections的值: 如下sql 復制代碼 代碼如下: show variables like "max_connections"; 顯示的結果如下格式 +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 100 | +-----------------+-------+ 可以通過下面的sql語句將max_connections的值設置為200,當然前提是當前登錄的用戶有足夠的權限: set global max_connections = 200; 這個設置會馬上生效,但是當mysql重啟時這個設置會失效,更好的辦法是修改mysql的ini配置文件my.ini 找到mysqld塊,修改或者添加下面的設置: max_connections=200 這樣修改之后,即便重啟mysql也會默認載入這個配置了 不過為了安全期間,建議大家直接到my.ini里修改,么有可以加上。 調整max_connections參數的值 調整此參數的方法有幾種,既可以在編譯的時候設置,也可以在MySQL配置文件 my.cnf 中設置,也可以直接使用命令調整並立即生效。 1、在編譯的時候設置默認最大連接數 打開MySQL的源碼,進入sql目錄,修改mysqld.cc文件: 復制代碼 代碼如下: {"max_connections", OPT_MAX_CONNECTIONS, "The number of simultaneous clients allowed.", (gptr*) &max_connections, (gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1, 0}, 紅色的”100″即為該參數的默認值,修改為想要的數值,存盤退出。然后執行 復制代碼 代碼如下: ./configure;make;make install 重新編譯安裝MySQL;注意,由於編譯安裝且修改了MySQL源碼,此操作最好在安裝MySQL之前進行; 2、在配置文件my.cnf中設置max_connections的值 打開MySQL配置文件my.cnf 復制代碼 代碼如下: [root@www ~]# vi /etc/my.cnf 找到max_connections一行,修改為(如果沒有,則自己添加), 復制代碼 代碼如下: max_connections = 1000 上面的1000即該參數的值。 3、實時(臨時)修改此參數的值 首先登陸mysql,執行如下命令: 復制代碼 代碼如下: [root@www ~]# mysql -uroot -p 然后輸入MySQL Root的密碼。 查看當前的Max_connections參數值: 復制代碼 代碼如下: mysql> SELECT @@MAX_CONNECTIONS AS 'Max Connections'; 設置該參數的值: 復制代碼 代碼如下: mysql> set GLOBAL max_connections=1000; (注意上面命令的大小寫) 修改完成后實時生效,無需重啟MySQL。 總體來說,該參數在服務器資源夠用的情況下應該盡量設置大,以滿足多個客戶端同時連接的需求。否則將會出現類似”Too many connections”的錯誤。 一般情況下根據同時在線人數設置一個比較綜合的數字,我們設置的是10000.