原文地址:http://www.cnblogs.com/verrion/p/mysql_optimised.html
MySQL優化聊兩句
MySQL不多介紹,今天聊兩句該如何優化以及從哪些方面入手,很多運維從業者一說起優化就不知所措,當運營過程中某個參數值到達一定閥值之後,就會出現各種問題,很多運維工程師這時不知所措,第一可能也從來沒有處理過類似情況,另一方面業務又緊張,系統不正常,首要任務是解決問題,那沒辦法只能重啟了,我們先不說重啟是否可行,比如有些應用可以重啟並且解決了問題,但如沒有解決問題,或者爆發出新的問題怎麼辦,比如血崩情況。所以我們應該從問題本身出發,第一查看日志,然後再具體問題具體分析等。
上面說了故障處理的一方面解決辦法,同樣適合於優化處理之道,根據本人學習和經驗,這裡說一下我的優化思路:首先要有這點認同感,任何系統應用都一定能達到瓶頸的時候,那我們為什麼不事先去想想瓶頸在哪裡,而不是當問題出現了,才去臨時抱佛腳。尤其對於運維來說,任何事情都要具有可把控性,預先想好大部分情況的預案和解決措施。
為什麼要優化:
系統在現有的環境中達到處理能力的最大限制,可能多一個請求或者連接都能對業務造成影響
如何優化:
問題關鍵在於:硬件資源(CPU、內存、磁盤、網絡)等已經負荷啦。這樣我們不很明了了,找出是哪個部分使硬件資源超負荷了,然後采取相應的措辭去調整,優化是個過程,直至系統已經優化足夠好了,還是沒有解決問題,只有橫向擴展加硬件資源啦。
根據上面所說的,我總結一下,mysql(其他的也一樣)優化應該從以下幾點出發,從體系架構層面一層一層的往上講解:
1、底層硬件層:最基礎的也是最重要的,下面幾層的優化最終是解決這層瓶頸;
2、操作系統層:搭載怎樣的操作系統、文件系統、網絡參數等選型和調優;
3、集群架構層:業務發展架構也要隨之發展;
4、數據應用層:mysql安裝、配置文件參數設置等;
5、SQL調優層:SQL語句優化,好的sql語句成功案例能提高70%的性能;
6、行為模式層:安全、流程、制度等優化;
下面一一說道,由於本人水平有限,有錯誤之處,請批評指正
一:底層硬件層
1、硬件資源列表
硬件資源
采購或購買雲服務器配置參考