如何調(diào)整和優(yōu)化MySQL? 需要用到MySQL調(diào)諧器,這是一個用Perl 語言編寫的漂亮的小腳本,可讓我們驗證MySQL安裝并提供簡短報告以及一些改進性能的建議。
下面,我們來了解運行MySQL調(diào)諧器的步驟:
第1步:從此處下載調(diào)諧器腳本:
wget https://github.com/major/MySQLTuner-perl/blob/461c8fb60e032ce29172393d38183549331fa840/mysqltuner.pl
第2步:提供 mysqltuner.pl 文件執(zhí)行權(quán)限以運行腳本。
chmod +x mysqltuner.pl
第3步:運行腳本
./mysqltuner.pl
腳本完成后,那么如何調(diào)整和優(yōu)化MySQL?可以查看建議并根據(jù)我們的用例決定實施。它們是:
1、key_buffer
通過更改key_buffer參數(shù),我們可以控制對MySQL的內(nèi)存分配。假設(shè)我們有那么多可用內(nèi)存,這可以顯著加快我們的數(shù)據(jù)庫速度。一般的經(jīng)驗法則是,當使用MyISAM 表引擎時,key_buffer大小不應(yīng)占用超過系統(tǒng)內(nèi)存的25%,而對于InnoDB,則最多可達70%。如果這個值設(shè)置得太高,會浪費資源。
根據(jù)MySQL官方文檔,具有256MB(或更多)RAM且包含許多表的服務(wù)器,建議使用64M key_buffer值,而默認值為 16MB。我們可以修改更大的值并為自己的特定服務(wù)器找到最佳點,但在決定之前始終監(jiān)控服務(wù)器負載統(tǒng)計信息。
2、innodb_buffer_pool_size
InnoDB緩沖池是優(yōu)化MySQL/MariaDB的關(guān)鍵組件。它存儲數(shù)據(jù)和索引。我們通??梢宰屗M可能大,以便在內(nèi)存中保留盡可能多的數(shù)據(jù)和索引,減少磁盤IO,這是主要瓶頸。因此,假設(shè)服務(wù)器專門用于處理/處理sql查詢,則典型值介于系統(tǒng) RAM的70%到80%之間。
該值僅適用于使用InnoDB作為其sql存儲引擎的sql服務(wù)。
3、最大允許數(shù)據(jù)包
使用此參數(shù),我們可以設(shè)置數(shù)據(jù)包的最大大小。對于外行來說,數(shù)據(jù)包是單個SQL狀態(tài)、發(fā)送到客戶端的單行,或者它可以是從源數(shù)據(jù)庫發(fā)送到副本的日志。如果我們的用例涉及處理大數(shù)據(jù)包,最好將此值增加到最大數(shù)據(jù)包的大小。如果設(shè)置得太小,我們會在錯誤日志中收到錯誤消息。
4、線程緩存大小
如果thread_cache_size設(shè)置為0,它實際上是關(guān)閉的,任何新連接都需要為其創(chuàng)建一個新線程。當連接關(guān)閉時,相應(yīng)的線程被銷毀。thread_cache_size 參數(shù)控制要存儲在緩存中的未使用線程的數(shù)量,直到它們可以重新用于連接。如果我們每分鐘接收數(shù)百個連接,則應(yīng)增加此值,以便大多數(shù)連接可以使用緩存的線程。
5、最大連接數(shù)
該值設(shè)置最大并發(fā)連接數(shù)。最好在設(shè)置此數(shù)字之前考慮我們過去擁有的最大連接數(shù),以便在該上限數(shù)字和max_connections值之間有一個緩沖區(qū)。請記住,這并不表示在任何給定時間我們網(wǎng)站上的最大用戶數(shù),而是同時收到的最大請求數(shù)。
這些選項并沒有在這里結(jié)束,但在將默認值以外的值應(yīng)用于其他sql 配置參數(shù)之前要小心,因為如果我們擁有的工作負載類型和您應(yīng)用的配置不匹配,它們可能會導(dǎo)致無法預(yù)料的問題。
6、尖端:
在開始修改MySQL參數(shù)之前,請務(wù)必備份/etc/my.cnf
每次進行更改時重新啟動MySQL服務(wù),因為它會幫助我們決定哪些特定更改可能有效或無效。
實施MySQL調(diào)諧器建議不是一次性修復(fù),我們必須根據(jù)正在處理的數(shù)據(jù)量或隨著系統(tǒng)的垂直擴展定期優(yōu)化服務(wù)參數(shù)。
以上是調(diào)整和優(yōu)化MySQL的建議,希望能幫助到大家!
Copyright ? 2013-2020. All Rights Reserved. 恒訊科技 深圳市恒訊科技有限公司 粵ICP備20052954號 IDC證:B1-20230800.移動站