優化mysql資料庫,請先看下這24條優化建議

2019-10-02     波波說運維

概述

MySQL是一個強大的開源資料庫。隨著MySQL上的應用越來越多,MySQL逐漸遇到了瓶頸。這裡提供一些關於MySQL伺服器硬體和OS(作業系統)調優的建議。


優化建議

1、足夠的內存

有足夠的物理內存,能將整個InnoDB文件加載到內存里 —— 如果訪問的文件在內存里,而不是在磁碟上,InnoDB會快很多。

2、避免swap

要盡力避免 Swap 操作 — 交換(swapping)是從磁碟讀取數據,所以會很慢。

3、使用電池供電的RAM(Battery-Backed RAM)

4、使用一個高級磁碟陣列

最好是 RAID10 或者更高。


5、避免使用RAID5

和校驗需要確保完整性,開銷很高。

6、分離作業系統和數據

將你的作業系統和數據分開,不僅僅是邏輯上要分開,物理上也要分開。作業系統的讀寫開銷會影響資料庫的性能。

7、日誌與數據分開

將臨時文件和複製日誌與數據文件分開,後台的寫操作影響資料庫從磁碟文件的讀寫操作。

8、更多的磁碟空間等於更高的速度。

9、磁碟速度越快越好。

10、SAS優於SATA。

11、小磁碟的速度比大磁碟的更快,尤其是在 RAID 中。

12、使用電池供電的緩存 RAID(Battery-Backed Cache RAID)控制器。

13、避免使用軟磁碟陣列。

14. 考慮用固態IO卡做數據分區

建議使用固態IO卡(不是磁碟)來作為數據分區 — 幾乎對所有量級數據,這種卡能夠支持 2 GBps 的寫操作。

15、設置 swappiness 的值為0

在 Linux 系統上,設置 swappiness 的值為0,沒有理由在資料庫伺服器上緩存文件,這種方式在Web伺服器或桌面應用中用的更多。

16、儘可能使用 noatime 和 nodirtime 來掛載文件系統

沒有必要為每次訪問來更新文件的修改時間。

17、使用 XFS 文件系統

一個比ext3更快的、更小的文件系統,擁有更多的日誌選項,同時,MySQL在ext3上存在雙緩衝區的問題。

18、優化你的 XFS 文件系統日誌和緩衝區參數

這是為了獲取最大的性能基準。

19、使用合適的IO調度

在Linux系統中,建議使用 NOOP 或 DEADLINE IO 調度器 — CFQ 和 ANTICIPATORY 調度器已經被證明比 NOOP 和 DEADLINE 慢。

20、使用 64 位作業系統

這樣就有更多的內存能用於尋址和 MySQL 使用。

21、將不用的包和後台程序從伺服器上刪除

主要是減少資源占用。

22、將使用 MySQL 的 host 和 MySQL自身的 host 都配置在一個 host 文件中

目的是沒有 DNS 查找。

23、永遠不要強制殺死一個MySQL進程

因為這樣你將損壞資料庫,並運行備份。

24、讓你的伺服器只服務於MySQL

後台處理程序和其他服務會占用資料庫的 CPU 時間。


覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~


文章來源: https://twgreatdaily.com/zh-tw/TRqjiW0BMH2_cNUgV30N.html