程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 疾速增長MYSQL數據庫銜接數負載才能的辦法分享

疾速增長MYSQL數據庫銜接數負載才能的辦法分享

編輯:MySQL綜合教程

疾速增長MYSQL數據庫銜接數負載才能的辦法分享。本站提示廣大學習愛好者:(疾速增長MYSQL數據庫銜接數負載才能的辦法分享)文章只能為提供參考,不一定能成為您想要的結果。以下是疾速增長MYSQL數據庫銜接數負載才能的辦法分享正文


第一先限制Innodb的並發處置.假如innodb_thread_concurrency = 0 可以先改成 16或是64 看機械壓力,假如
異常年夜,先改成16讓機械的壓力上去,然後漸漸增達,順應自已的營業.
處置辦法: set global innodb_thread_concurrency=16;


辦法一: (window體系中可直接修正my.ini文件)

進入MYSQL裝置目次 翻開MYSQL設置裝備擺設文件 my.ini 或 my.cnf查找 max_connections=100 修正為 max_connections=1000 辦事裡重起MYSQL便可

辦法二: (在mysql敕令形式下)

關於銜接數曾經跨越600或是更多的情形,可以斟酌恰當的限制一下銜接數,讓前端報一下錯,也別讓DB掛了.
DB在了,老是可以用來加載一下數據,當數據加載到了nosql裡了,漸漸的DB壓力也會降上去的.
限制單用戶銜接數在500以下. 如:
set global max_user_connections=500;

(MySQL跟著銜接數的增長機能會是降低的,這也是thread_pool湧現的緣由)
別的關於有的監控法式會讀取information_schema上面的表的法式可以斟酌封閉上面的參數
innodb_stats_on_metadata=0
set global innodb_stats_on_metadata=0;


辦法

MySQL的最年夜銜接數默許是100客戶端登錄:mysql -uusername -ppassword
設置新的最年夜銜接數為200:mysql> set GLOBAL max_connections=200
顯示以後運轉的Query:mysql> show processlist
顯示以後狀況:mysql> show status
加入客戶端:mysql> exit
檢查以後最年夜銜接數:mysqladmin -uusername -ppassword variables


這個參數重要避免對讀取information_schema時形成年夜量讀取磁盤停止信息統計(假如慢查詢中湧現關於information_schema中表時,也能夠斟酌禁用該參數)


處置根據:

當黉捨的一個食堂一分鐘只能為兩個打飯, 溘然來了100個時人來打飯,又沒列隊, 不出會現了打飯的徒弟要用點時光
去選擇為誰人用戶辦事了, 人越多,排場就越亂, 不免湧現用戶年夜吼該他的排場, 最初有能夠就湧現不是打飯了,而時之間互相
打斗了,打飯的徒弟也將收到同時有90個以上的Server too busy. 假如能排一下隊.最多也就50分鐘能處置完了

辦法三: (linux中得新編譯mysql)

以centos 4.4 上面的mysql 5.0.33 手工編譯版本為例解釋:
vi /usr/local/mysql/bin/mysqld_safe
找到safe_mysqld編纂它,找到mysqld啟動的那兩行,在前面加上參數:
-O max_connections=1500
詳細一點就是上面的地位:
用紅字特殊解釋:
then $NOHUP_NICENESS $ledir/$MYSQLD
$defaults --basedir=$MY_BASEDIR_VERSION
--datadir=$DATADIR $USER_OPTION
--pid-file=$pid_file
--skip-external-locking
-O max_connections=1500
>> $err_log 2>&1 else
eval "$NOHUP_NICENESS $ledir/$MYSQLD
$defaults --basedir=$MY_BASEDIR_VERSION
--datadir=$DATADIR $USER_OPTION
--pid-file=$pid_file
--skip-external-locking $args
-O max_connections=1500 >>
$err_log 2>&1"
保留。
# service mysqld restart
# /usr/local/mysql/bin/mysqladmin -uroot -p variables
輸出root數據庫賬號的暗碼後可看到
max_connections 1500 即新修改曾經失效。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved