< 返回新聞公共列表

如何調(diào)整和優(yōu)化MySQL?

發(fā)布時間:2023-03-02 14:55:50

如何調(diào)整和優(yōu)化MySQL? 需要用到MySQL調(diào)諧器,這是一個用Perl 語言編寫的漂亮的小腳本,可讓我們驗證MySQL安裝并提供簡短報告以及一些改進(jìn)性能的建議。


如何調(diào)整和優(yōu)化MySQL?.png


下面,我們來了解運(yùn)行MySQL調(diào)諧器的步驟:

第1步:從此處下載調(diào)諧器腳本:

wget https://github.com/major/MySQLTuner-perl/blob/461c8fb60e032ce29172393d38183549331fa840/mysqltuner.pl

第2步:提供 mysqltuner.pl 文件執(zhí)行權(quán)限以運(yùn)行腳本。

chmod +x mysqltuner.pl

第3步:運(yùn)行腳本

./mysqltuner.pl


腳本完成后,那么如何調(diào)整和優(yōu)化MySQL?可以查看建議并根據(jù)我們的用例決定實施。它們是:

1、key_buffer

通過更改key_buffer參數(shù),我們可以控制對MySQL的內(nèi)存分配。假設(shè)我們有那么多可用內(nèi)存,這可以顯著加快我們的數(shù)據(jù)庫速度。一般的經(jīng)驗法則是,當(dāng)使用MyISAM 表引擎時,key_buffer大小不應(yīng)占用超過系統(tǒng)內(nèi)存的25%,而對于InnoDB,則最多可達(dá)70%。如果這個值設(shè)置得太高,會浪費(fèi)資源。

根據(jù)MySQL官方文檔,具有256MB(或更多)RAM且包含許多表的服務(wù)器,建議使用64M key_buffer值,而默認(rèn)值為 16MB。我們可以修改更大的值并為自己的特定服務(wù)器找到最佳點(diǎn),但在決定之前始終監(jiān)控服務(wù)器負(fù)載統(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)建一個新線程。當(dā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é)束,但在將默認(rèn)值以外的值應(yīng)用于其他sql 配置參數(shù)之前要小心,因為如果我們擁有的工作負(fù)載類型和您應(yīng)用的配置不匹配,它們可能會導(dǎo)致無法預(yù)料的問題。


6、尖端:

在開始修改MySQL參數(shù)之前,請務(wù)必備份/etc/my.cnf

每次進(jìn)行更改時重新啟動MySQL服務(wù),因為它會幫助我們決定哪些特定更改可能有效或無效。

實施MySQL調(diào)諧器建議不是一次性修復(fù),我們必須根據(jù)正在處理的數(shù)據(jù)量或隨著系統(tǒng)的垂直擴(kuò)展定期優(yōu)化服務(wù)參數(shù)。


以上是調(diào)整和優(yōu)化MySQL的建議,希望能幫助到大家!


/template/Home/Zkeys724/PC/Static