在系統(tǒng)級別,您將調整硬件和軟件選項以提高 MySQL 性能。
一、平衡四大硬件資源
1、磁盤存儲
花點時間評估您的存儲空間。如果您使用的是傳統(tǒng)硬盤驅動器 (HDD),則可以升級到固態(tài)驅動器 (SSD) 以提高性能。
使用sysstat包中的iotop或sar之類的工具來監(jiān)控磁盤輸入/輸出速率。如果磁盤使用率遠高于其他資源的使用率,請考慮添加更多存儲或升級到更快的存儲。
2、處理器
處理器通常被認為是衡量系統(tǒng)速度的指標。使用Linux top命令了解資源的使用情況。注意 MySQL 進程及其所需的處理器使用百分比。
處理器的升級成本更高,但如果您的 CPU 是瓶頸,則可能需要升級。
3、內存
內存表示您的 MySQL數(shù)據(jù)庫存儲服務器中的 RAM 總量。您可以調整內存緩存(稍后會詳細介紹)以提高性能。如果您沒有足夠的內存,或者現(xiàn)有內存沒有優(yōu)化,您最終可能會損害您的性能而不是提高它。
像其他瓶頸一樣,如果您的服務器經(jīng)常耗盡內存,您可以通過添加更多來升級。如果您的內存不足,您的服務器將緩存數(shù)據(jù)存儲(如硬盤)以充當內存。數(shù)據(jù)庫緩存會降低您的性能。
4、網(wǎng)絡
監(jiān)控網(wǎng)絡流量以確保您有足夠的基礎設施來管理負載非常重要。
網(wǎng)絡過載會導致延遲、丟包甚至服務器中斷。確保您有足夠的網(wǎng)絡帶寬來容納正常水平的數(shù)據(jù)庫流量。
二.、使用 InnoDB,而不是 MyISAM
MyISAM是一種較舊的數(shù)據(jù)庫樣式,用于某些 MySQL 數(shù)據(jù)庫。這是一種效率較低的數(shù)據(jù)庫設計。較新的InnoDB支持更高級的功能并具有內置的優(yōu)化機制。
InnoDB 使用聚集索引并將數(shù)據(jù)保存在頁面中,這些頁面存儲在連續(xù)的物理塊中。如果某個頁面的值太大,InnoDB 會將其移動到另一個位置,然后索引該值。此功能有助于將相關數(shù)據(jù)保存在存儲設備上的同一位置,這意味著物理硬盤驅動器訪問數(shù)據(jù)所需的時間更少。
三、使用最新版本的MySQL
對于舊的和遺留的數(shù)據(jù)庫,使用最新版本并不總是可行的。但只要有可能,您應該檢查正在使用的 MySQL 版本并升級到最新版本。
正在進行的開發(fā)的一部分包括性能增強。一些常見的性能調整可能會被較新版本的 MySQL 淘汰。一般來說,使用原生 MySQL 性能增強總是比腳本和配置文件更好。