mysql優化連線數防止訪問量過高的方法

2021-08-01 12:54:23 字數 4034 閱讀 4341

很多開發人員都會遇見」mysql: error 1040: too many connections」的異常情況,造成這種情況的一種原因是訪問量過高,mysql伺服器抗不住,這個時候就要考慮增加從伺服器分散讀壓力;另一種原因就是mysql配置檔案中max_connections值過小

首先,我們來檢視mysql的最大連線數:

?

1

2

3

4

5

6

7

mysql> show variableslike'%max_connections%';

+-----------------+-------+

| variable_name  | value |

+-----------------+-------+

| max_connections | 151  |

+-----------------+-------+

1 rowinset(0.00 sec)

其次,檢視伺服器響應的最大連線數:

?

1

2

3

4

5

6

7

mysql> showglobalstatuslike'max_used_connections';

+----------------------+-------+

| variable_name    | value |

+----------------------+-------+

| max_used_connections | 2   |

+----------------------+-------+

1 rowinset(0.00 sec)

可以看到伺服器響應的最大連線數為2,遠遠低於mysql伺服器允許的最大連線數值。

對於mysql伺服器最大連線數值的設定範圍比較理想的是:伺服器響應的最大連線數值佔伺服器上限連線數值的比例值在10%以上,如果在10%以下,說明mysql伺服器最大連線上限值設定過高。

?

1

max_used_connections / max_connections * 100% = 2/151 *100% ≈ 1%

我們可以看到佔比遠低於10%(因為這是本地測試伺服器,結果值沒有太大的參考意義,大家可以根據實際情況設定連線數的上限值)。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

mysql> show variableslike'%max_connections%';

+-----------------+-------+

| variable_name  | value |

+-----------------+-------+

| max_connections | 151  |

+-----------------+-------+

1 rowinset(0.19 sec)

mysql> showglobalstatuslike'max_used_connections';

+----------------------+-------+

| variable_name    | value |

+----------------------+-------+

| max_used_connections | 44  |

+----------------------+-------+

1 rowinset(0.17 sec)

這裡的最大連線數佔上限連線數的30%左右。

上面我們知道怎麼檢視mysql伺服器的最大連線數值,並且知道了如何判斷該值是否合理,下面我們就來介紹一下如何設定這個最大連線數值。

方法1:

?

1

2

3

4

5

6

7

8

9

mysql>setglobalmax_connections=256;

query ok, 0rowsaffected (0.00 sec)

mysql> show variableslike'%max_connections%';

+-----------------+-------+

| variable_name  | value |

+-----------------+-------+

| max_connections | 256  |

+-----------------+-------+

1 rowinset(0.00 sec)

方法2:

修改mysql配置檔案my.cnf,在[mysqld]段中新增或修改max_connections值:

max_connections=128

重啟mysql服務即可。

優化mysql連線數訪問量

如果mysql 出現mysql error 1040 too many connections有兩種原因,第一種表明訪問量過高,mysql伺服器扛不住了,就要考慮新增伺服器分擔壓力,第二種有可能就是mysql配置檔案max connections這個值太小 我在我的mysql查詢 如果你查詢的結果伺...

mysql優化連線數防止訪問量過高的方法

很多開發人員都會遇見 mysql error 1040 too many connections 的異常情況,造成這種情況的一種原因是訪問量過高,mysql伺服器抗不住,這個時候就要考慮增加從伺服器分散讀壓力 另一種原因就是mysql配置檔案中max connections值過小。首先,我們來檢視m...

mysql優化連線數防止訪問量過高的方法

很多開發人員都會遇見 mysql error 1040 too many connections 的異常情況,造成這種情況的一種原因是訪問量過高,mysql伺服器抗不住,這個時候就要考慮增加從伺服器分散讀壓力 另一種原因就是mysql配置檔案中max connections值過小。首先,我們來檢視m...