前言
優化一個設計不當或者錯誤使用索引的Schema,可以數量級的提高性能。如果需要高性能,你必須對於將要執行的具體語句設計Schema和索引。你也應該對於不同種類的語句進行性能的評估,因爲修改成一個語句或者schema的一部分可能會引發其他的一些連帶效應。優化往往涉及到了折中。比如,添加索引會增加查詢速度,但會降低更新速度。同樣的,非範式的schema能提高一些語句的執行速度,但是可能在其他的速度就會降低。添加計數和彙總表是個好的優化語句的方式,但是他們增加了維護的難度。
一些時候你可能已經超出了開發人員的角色了以及你會有一些有疑問的需求。那些並不是數據庫系統專家的人常常寫一些業務需求並不會考慮性能。如果你說明一些小功能會需要兩倍於當前服務器的配置,那麼他們可能會決定取消這個功能。
Schema和索引的優化不但需要注意細節,也要有個大局觀。你需要知道整個系統,這樣才能理解每一部分對另外一些的影響。這一章節首先討論數據類型,之後涵蓋了索引策略以及數據庫範式。最後一些關於存儲引擎的信息。
在閱讀完語句優化那張之後,你可能需要重新回顧下這一章。許多這一章討論的主題,尤其是索引,都不是獨立的。你必須熟悉語句優化以及服務器的調整,才能正確的使用索引。
http://www.hh010.com/bencandy-htm-fid-77-id-48155.html