本章談的是資料庫的效能與擴展性(scalability)。這裡採用的擴展性定義是:
擴展性是系統、網路或程序以稱職的方式處理不斷成長的工作量的能力; 或者,它被擴大以容納這種成長的能力。
——Wikipedia
這其實是兩個定義:第一個關於「成長的負載對系統的影響」,第二個關於「擴大系統以處理更多負載」。
第二個定義遠比第一個受歡迎。每當有人談擴展性,幾乎總是在談加更多硬體——scale-up 與 scale-out 是相應的關鍵字,近年又多了 web-scale 之類的流行語。
廣義而言,擴展性談的是環境變化對效能的影響。硬體只是眾多可變環境參數之一,本章同時涵蓋另外兩個參數:資料量與系統負載。