影響資料庫系統效能的因素很多,不管是系統管理者或是程式開發者,都可能因為不當的作業方式,大幅降低系統效能。本書以MySQL 4.×版本為主要內容,定位為進階使用,非一般入門級的常識,以少量的頁數切入讀者想了解的進階觀念。

內容雖然較複雜難懂,作者仍試圖以平易近人的表達方式來陳述這些重要的觀念,同時也提供實用的操作及設計技巧,讓你避免一些不必要的錯誤,建議最好有MySQL的使用經驗再閱讀。

只要是系統,就免不了調校
因為使用簡便與平臺支援的多樣化,MySQL市場普及率居高不下。也許你會覺得MySQL既然屬於輕量級的資料庫系統,還有調校的需要嗎?答案是肯定的,發展至今,MySQL功能完整度已經與知名大廠的資料庫產品相似,架構較以往複雜,這樣的議題陸續受到重視。

以緩衝記憶體(Buffer Size),暫存資料表空間(Temp Table Size)等設定為例,這些安裝時所給定的初始設定值,會持續影響系統效能,第一章內容即討論系統需定義的組態參數。當然你必須熟悉MySQL的指令,以便於更改。

接下來便介紹MySQL的儲存引擎(Storage Engine)技術,包括MyISAM、Heap、 BDB和InnoDB。本章將提到MySQL的系統架構、同步處理下的多種不同鎖定(Lock)機制、交易管理方式,以及如何選擇適當的儲存引擎。

當你面臨效能調校的課題時,Benchmark是你應必備的知識,第三章探討效能測試的基本概念,在調校的前後,利用工具比較差異。作者介紹幾個測試工具(MySQL、MySQL super-smack和作者自行開發的程式MyBench)的使用方法,可供讀者參考。

索引及查詢語法是效能改善的關鍵點
索引(Index)是影響資料存取的重要因素,索引結構的設計亦會對不同的存取方式呈現出對應的效能。第四章介紹MySQL索引的種類及用途、資料結構(B-Tree、 Hash、R-Tree)及維護。

資料存取行為中最常用到查詢(Query),包括存取快取空間、語法剖析及最佳化,以至最後的執行,每個環結都可能是影響效能的關鍵。第五章教你如何利用MySQL的指令來檢視瓶頸來源,找出可能造成效能下降的查詢語句,進而建議改善寫法,絕對是讓你覺得值回票價的章節。

與查詢及索引設計相比,單純從硬體規格昇級的方式未必能明顯提升效能,因此需要調校作業系統,讓主機能與MySQL可以完美搭配,發揮硬體資源到極致。在第六章探討效能受限的因素,像是磁碟配置、RAID的規畫、記憶體配置(包括Buffer及Cache)、網路架構規畫、作業系統中檔案系統的選擇、執行緒管理機制等。最後亦列出在該如何在不同狀況下,突破系統效能的瓶頸。

當MySQL上所承載的應用系統愈來愈多,裡面資料的重要性相對增加,透過資料複寫機制(Replication)達到資料分散分享及備份很常見,這對多點企業更是重要,能提高資料庫系統的可用度。第七章介紹如何運用MySQL提供的資料複寫架構配置,減少遠端存取,提升運作效能。

面臨大規模系統時更需謹慎設計
第八章探討負載平衡及高可用度的系統架構,提出建議的規畫方式,像是搭配前一章介紹的資料複寫架構,規畫資料叢集(Cluster Patitioning)或結合網路設備(Load Balancer),達到較佳效能。

第九章討論資料庫備份及復原的機制,討論重要系統作業所需考慮的重點,像是備份方式、進行時機、儲存媒介的選擇等,這些都可能直接或間接影響到資料庫線上運行的效能。第十章則討論系統安全,關於使用者針對不同資料庫物件的授權方式,處理管理帳號、作業系統層級安全與網路安全等議題。

High Performance MySQL
Derek J. Balling, Jeremy Zawodny著
O'Reilly出版
售價:39.95美元
推薦:Amazon四顆半星

《作者簡介》陳宏一
現任億訊國際資深顧問,交通大學資訊管理研究所碩士。曾任職於南亞科技資訊部工程師、資迅人網路研發副理、數位營運研發專案經理、艾群科技產品研發部經理,專精於OOAD、J2EE Technology、Web application development、軟體開發流程及專案管理等;通過SCJP、SCWCD、 SCJD、SCEA等認證。

曾參與線上社群網站規劃設計、電子商務網站規劃設計、金流整合及後臺管理系統規劃設計、線上遊戲系統監控管理平臺及計費系統規劃設計、網路開店系統平臺架構設計、WAP Portal規劃設計等專案規劃建置。

熱門新聞

Advertisement