Mysql 配置優化

Mysql 配置優化


  • 配置文件:/etc/my.conf

參數:skip-name-resolve

查詢SQL:無

skip-name-resolve:禁止MySQL對外部連接進行DNS解析,使用這一選項可以消除MySQL進行DNS解析的時間。但需要注意,如果開啓該選項,則所有遠程主機連接授權都要使用IP地址方式,否則MySQL將無法正常處理連接請求。
說明

參數:thread_concurrency=數字(cpu總核x2)

查詢SQL:show variables like 'thread_concurrency';

thread_concurrency的值的正確與否, 對mysql的性能影響很大, 在多個cpu(或多核)的情況下,錯誤設置了thread_concurrency的值, 會導致mysql不能充分利用多cpu(或多核), 出現同一時刻只能一個cpu(或核)在工作的情況。
thread_concurrency應設爲CPU核數的2倍. 比如有一個雙核的CPU, 那thread_concurrency  的應該爲4; 2個雙核的cpu, thread_concurrency的值應爲8.
說明

參數:max_user_connections=0(默認0)

查詢SQL:show variables like 'max_user_connections';

max_user_connections是指每個數據庫用戶的最大連接
針對某一個賬號的所有客戶端並行連接到MYSQL服務的最大並行連接數。
簡單說是指同一個賬號能夠同時連接到mysql服務的最大連接數。
設置爲0表示不限制。
目前默認值爲:0不受限制。

Max_used_connections:它是指從這次mysql服務啓動到現在,同一時刻並行連接數的最大值。它不是指當前的連接情況,而是一個比較值。
如果在過去某一個時刻,MYSQL服務同時有1000個請求連接過來,而之後再也沒有出現這麼大的併發請求時,則Max_used_connections=1000.請注意與show variables 裏的max_user_connections的區別。默認爲0表示無限大。
說明

參數:back_log=300[(默認50)(每個連接默認256kb)(根據請求數與內存大小調試)]

查詢SQL:show variables like 'back_log';

back_log值指出在MySQL暫時停止回答新請求之前的短時間內多少個請求可以被存在堆棧中。也就是說,如果MySql的連接數據達到max_connections時,新來的請求將會被存在堆棧中,以等待某一連接釋放資源,該堆棧的數量即back_log,如果等待連接的數量超過back_log,將不被授予連接資源。

將會報:unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待連接進程時.

back_log值不能超過TCP/IP連接的偵聽隊列的大小。
若超過則無效,查看當前系統的TCP/IP連接的偵聽隊列的大小命令:cat /proc/sys/net/ipv4/tcp_max_syn_backlog目前系統爲1024。
說明

參數:wait_timeout=1800[(默認30分鐘)(單位秒)(根據連接數據庫空閒時長調試)]

查詢SQL:show variables like 'wait_timeout'

wait-timeout:MySQL客戶端的數據庫連接閒置最大時間值。
當你的MySQL連接閒置超過一定時間後將會被強行關閉。

在網站有大量的MySQL鏈接請求(每個MySQL連接都是要內存資源開銷的 ),由於你的程序的原因有大量的連接請求空閒啥事也不幹,白白佔用內存資源,或者導致MySQL超過最大連接數從來無法新建連接導致“Too many connections”的錯誤。

在設置之前你可以查看一下你的MYSQL的狀態(可用show processlist),如果經常發現MYSQL中有大量的Sleep進程,則需要 修改wait-timeout值了。
說明

參數:max_connections=2000[(默認151)(每個連接默認256k)(根據併發量與內存大小調試)]

查詢SQL:show variables like 'max_connections';

max_connections是指MySql的最大連接數,如果服務器的併發連接請求量比較大,建議調高此值,以增加並行連接數量,當然這建立在機器能支撐的情況下,因爲如果連接數越多,介於MySql會爲每個連接提供連接緩衝區,就會開銷越多的內存,所以要適當調整該值,不能盲目提高設值。

MySQL服務器允許的最大連接數16384;
說明

參數: skip-networking[(默認關閉)(根據安全角度可以開啓,建議關閉)]

查詢SQL:無

開啓該選項可以徹底關閉MySQL的TCP/IP連接方式,如果WEB服務器是以遠程連接的方式訪問MySQL數據庫服務器則不要開啓該選項!否則將無法正常連接!
說明

 

  • Mysql緩存優化
  • 參考地址:https://www.cnblogs.com/gxiaoyang/p/13154175.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章