本文的作者Daniel Nichter是MySQL工具的開發者,他為MySQL管理員推薦了十款必備工具。以下是全文內容:
MySQL是一套需要大量輔助工具加以修復、診斷及優化的復雜系統。幸運的是,對於管理員來說,MySQL的高普及度吸引了大量軟件開發商為其打造高品質的各類開源工具,內容涵蓋MySQL系統的復雜性均衡、性能表現維持及穩定運行保障,而且其中大部分是免費工具。
下列十款開源工具對於使用MySQL的用戶來說是極為寶貴的財富,其內容覆蓋從單獨實例到多節點環境的各類情況。該盤點比較用心,大家能夠從中找到足以幫助自己備份MySQL數據、提高性能、防止基准偏差以及在出現問題時從記錄中篩選關鍵性數據的各類工具。
比起親自動手創建內部工具,使用此類工具有下列幾項優勢。首先,由於使用范圍廣,它們在系統成熟性及功能實踐方面都要更勝一籌。其次,因為它們都是免費的開源工具,所以能夠得到不斷拓展的MySQL社區提供的知識及使用經驗的加持。再有,這些開發人員在研發環節中態度嚴謹,很多工具還具備專業技術支持 (無論是免費版還是商業版),因此能夠持續得到完善進而保持對不斷變化的新MySQL業界態勢的適應性。
請記住,總有許多我們未曾留心的實用工具值得關注。我在推薦工具的選擇中更為側重於免費及開源特質,功能性及可用性標准則作為稍次之的標准。另外需要強調的是,這些工具中除了一款以外,其余全部屬於Unix指令行程序,因為總體來說MySQL在Unix系統中的部署及開發工作更為常見。如果各位讀者在我的推薦中沒有找到自己偏愛的某款工具,希望能在文章下方的評論欄中留言,與大家共享你的心得。
閒言少敘,十大必備MySQL工具推薦就此開始。
沒有什麼比低下的MySQL性能表現更讓人抓狂的了。盡管大家常常下意識地認為是硬件配置滯後導致此類問題,但事實上在大多數情況中真正的症結並不在這裡。性能表現不佳往往由以下原因造成,即某些執行緩慢的查詢阻塞了其它查詢指令的順暢進行,並由此產生了一個響應時間遲緩的惡性循環。由於優化查詢指令比起升級硬件來說能夠節約大量成本,因此合乎邏輯的優化方式應該從分析查詢指令日志文件入手。
數據庫管理員們應該經常分析查詢日志,進而把握運行環境的各類波動。而如果大家從來沒有進行過該項分析,請立即著手進行吧。如果對此缺乏經驗,依靠第三方軟件的幫助也是不錯的選擇;盡管很多人認為那些軟件只會在瞎忙一氣之後給出一個虛構的漂亮結果,但我得說,實際上它們通常情況下還是確切有效的。
在當前的諸多選擇中,mk- query-digest是查詢日志分析工具中最棒的一款。它由Baron Schwartz和我本人聯合編寫,功能成熟性、記錄充分性以及測試徹底性都做得相當到位。MySQL本身包含了一款名為mysqldumpslow的查詢日志分析器,但該工具不僅陳舊過時、驗證規范不准確,而且缺乏廣泛的實際應用加以支持。而其它幾款較為著名的查詢日志分析器,包括我前幾年編寫的 mysqlsla,都與mysqldumpslow具備相同的缺點。
mk-query-digest能夠分析查詢日志內容並根據匯總得出的執行時間及其它各項指標的統計信息自動生成報告。由於查詢日志中的信息量極為巨大,有時甚至包含數以百萬計的條目,因此此類分析工作必須依靠特定工具來完成。
mk-query-digest可以幫助大家找出那些與其它查詢指令相比耗時最長的條目。對這些低速查詢加以優化將使整套MySQL體系的運行速度大幅提高,最大響應延遲也將相應下降。查詢指令的優化工作本身堪稱藝術,其中包含諸多細致入微的技巧,但整個流程的基本原則總是共通的:尋獲低速查詢指令、進行優化、提高查詢響應時間。
該工具使用起來非常簡便,執行mk-query-digest slow-query.log,那些運行速度遲緩的查詢指令將被輸出至slow-query.log文件。工具中還提供了“查詢指令復核”功能,意在列出那些我們尚未加以核對或批准的查詢指令。如此一來,我們就可以僅僅對那些新出現的查詢指令進行有針對性的處理,繁瑣枯燥的日志分析工作也隨之變得更加快速、高效。
下載地址: http://maatkit.org/get/mk-query-digest
維護負責人: Daniel Nichter and Baron Schwartz
更多信息: http://maatkit.org/ | http://code.google.com/p/maatkit/