最佳化MySQL,還是使用緩衝?讀一篇文章有感

來源:互聯網
上載者:User

標籤:style   http   color   使用   io   資料   問題   cti   

今天我想對一個Greenfield項目上可以採用的各種效能最佳化策略作個對比。換言之,該項目沒有之前決策強加給它的各種約束限制,也還沒有被最佳化過。

具體來說,我想比較的兩種最佳化策略是最佳化MySQL和緩衝。提前指出,這些最佳化是正交的,唯一讓你選擇其中一者而不是另一者的原因是他們都耗費了資源,即開發時間。

最佳化MySQL

最佳化MySQL時,一般會先查看發送給mysql的查詢語句,然後運行explain命令。稍加審查後很常見的做法是增加索引或者對模式做一些調整。

優點

1、一個經過最佳化的查詢對於所有使用應用的使用者來說都是快速的。因為索引通過對數複雜度的速度來檢索資料(又名分制,正如你搜尋一個電話簿一樣,逐步縮小搜尋範圍),而且隨著資料量的遞增也能維持良好的效能。對一個未經索引化的查詢的結果做緩衝隨著資料的增長有時候則可能會表現得更差。隨著資料的增長,那些未命中緩衝的使用者可能會得到很糟糕的體驗,這樣的應用是停用。

2、最佳化MySQL不需要擔心緩衝失效或者快取資料到期的問題。

3、最佳化MySQL可以簡化技術架構,在開發環境下複製和工作會更加容易。

缺點

1、有一些查詢不能光通過索引得到效能上的改善,可能還需要改變模式,在某些情況下這對於一些應用可能會很麻煩。

2、有些模式的更改可能用於反正常化(資料備份)。儘管對於DBA來說,這是一項常用的技術,它需要所有權以確保所有的地方都是由應用程式更新,或需要安裝觸發器來保證這種變化。

3、一些最佳化手段可能是MySQL所特有的。也就是說,如果底層軟體被移植到多個資料庫上工作,那麼很難確保除了增加索引外一些更複雜的最佳化技術可以通用。

使用緩衝

這種最佳化需要人來分析應用的實際情況,然後將處理代價昂貴的部分從MySQL中剝離出來用第三方緩衝替代,比如memcached或Redis。

優點

1、緩衝對於一些MySql自身很難最佳化的查詢來說會工作地很好,比如大規模的彙總或者分組的查詢。

2、緩衝對於提高系統的吞吐率來說可能是個不錯的方案。比如對於多人同時訪問應用時響應速度很慢的情況。

3、緩衝可能更容易構建在另一個應用之上。比如:你的應用可能是另一個用MySQL儲存資料的軟體包的前端,而要對這個軟體包做任何資料庫方面的改動都非常難。

缺點

1、如果資料對外提供多種存取範式(例如,在不同的頁面上用不同的形式展示),那麼讓緩衝到期或者更新可能會很難,同時/或者可能需要容忍已到期的資料。一個可行的替代方案是設計一套更加精細的緩衝機制,當然它也有缺點,即多次擷取緩衝會增加時延。

2、緩衝一個產生代價昂貴的對象對於那些未命中緩衝的使用者(見最佳化MySQL的優勢#1)而言可能會產生潛在的效能差異。一些好的效能實踐表明你應該盡量縮小使用者之間的差異性,而不僅僅是平均化(緩衝傾向於這麼做)。

3、幼稚的緩衝實現無力應對一些微妙的漏洞,比如雪崩效應。就在上周我協助了一個人,他的資料庫伺服器被多個試圖同時再生同樣緩衝內容的使用者請求衝垮。正確的策略是引入一定層級的鎖來將緩衝再生的請求序列化。

總結

一般情況下,我會建議使用者先對MySQL進行最佳化,因為這是我認為開始階段最合適的解決方案。但長期來看,大部分應用都會有一些用例需要一定程度上同時實現以上這些方案。

原文連結: Morgan Tocker  

最佳化MySQL,還是使用緩衝?讀一篇文章有感

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.