天天看點

從架構師角度全局了解Mysql性能優化

MySQL性能優化其實是個很大的課題,在優化上存在着一個調優金字塔的說法:

從架構師角度全局了解Mysql性能優化

很明顯從圖上可以看出,越往上走,難度越來越高,收益卻是越來越小的。

是以在進行優化時,首先需要關注和優化的應該是架構,如果架構不合理,即使是DBA能做的事情其實是也是比較有限的。 

對于架構調優,在系統設計時首先需要充分考慮業務的實際情況,是否可以把不适合資料庫做的事情放到資料倉庫、搜尋引擎或者緩存中去做;然後考慮寫的并發量有多大,是否需要采用分布式;最後考慮讀的壓力是否很大,是否需要讀寫分離。對于核心應用或者金融類的應用,需要額外考慮資料安全因素,資料是否不允許丢失。

作為金字塔的底部的架構調優,采用更适合業務場景的架構能最大程度地提升系統的擴充性和可用性。在設計中進行垂直拆分能盡量解耦應用的依賴,對讀壓力比較大的業務進行讀寫分離能保證讀性能線性擴充,而對于讀寫并發壓力比較大的業務在MySQL上也有采用讀寫分離的大量案例。

在底層硬體系統、SQL語句和參數都基本定型的情況下