明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

如何使用max_connections設置參數(shù)對Mysql進行優(yōu)化性能

[摘要]MySQL的max_connections參數(shù)用來設置最大連接(用戶)數(shù)。每個連接MySQL的用戶均算作一個連接,max_connections的默認值為100。本文將講解此參數(shù)的詳細作用與性能影響。與max_connections有關的特性MySQL無論如何都會保留一個用于管理員(SUPER)登...
MySQL的max_connections參數(shù)用來設置最大連接(用戶)數(shù)。每個連接MySQL的用戶均算作一個連接,max_connections的默認值為100。本文將講解此參數(shù)的詳細作用與性能影響。

與max_connections有關的特性

MySQL無論如何都會保留一個用于管理員(SUPER)登陸的連接,用于管理員連接數(shù)據(jù)庫進行維護操作,即使當前連接數(shù)已經(jīng)達到了max_connections。因此MySQL的實際最大可連接數(shù)為max_connections+1;
這個參數(shù)實際起作用的最大值(實際最大可連接數(shù))為16384,即該參數(shù)最大值不能超過16384,即使超過也以16384為準;
增加max_connections參數(shù)的值,不會占用太多系統(tǒng)資源。系統(tǒng)資源(CPU、內(nèi)存)的占用主要取決于查詢的密度、效率等;
該參數(shù)設置過小的最明顯特征是出現(xiàn)”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里修改,么有可以加上。

調(diào)整max_connections參數(shù)的值

調(diào)整此參數(shù)的方法有幾種,既可以在編譯的時候設置,也可以在MySQL配置文件 my.cnf 中設置,也可以直接使用命令調(diào)整并立即生效。

1、在編譯的時候設置默認最大連接數(shù)

打開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″即為該參數(shù)的默認值,修改為想要的數(shù)值,存盤退出。然后執(zhí)行

./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即該參數(shù)的值。

3、實時(臨時)修改此參數(shù)的值

首先登陸mysql,執(zhí)行如下命令:

[root@www ~]# mysql -uroot -p

然后輸入MySQL Root的密碼。

查看當前的Max_connections參數(shù)值:

mysql> SELECT @@MAX_CONNECTIONS AS 'Max Connections';

設置該參數(shù)的值:

mysql> set GLOBAL max_connections=1000;

(注意上面命令的大小寫)

修改完成后實時生效,無需重啟MySQL。

總體來說,該參數(shù)在服務器資源夠用的情況下應該盡量設置大,以滿足多個客戶端同時連接的需求。否則將會出現(xiàn)類似”Too many connections”的錯誤。
一般情況下根據(jù)同時在線人數(shù)設置一個比較綜合的數(shù)字,我們設置的是10000.

以上就是如何使用max_connections配置參數(shù)對Mysql進行性能優(yōu)化的詳細內(nèi)容,更多請關注php中文網(wǎng)其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。