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