可伸缩性 是应用程序有效使用更多资源以执行更多有用工作的能力。例如,一个在单处理器系统上供 4 个用户使用的应用程序也许能够在一个四处理器系统上服务于 15 个用户。在这种情况下,该应用程序是可伸缩的。如果添加更多处理器但无法增加所服务的用户数量(例如,如果单线程应用程序),则说明该应用程序是不可伸缩的。
可伸缩性有两种:纵向扩展和横向扩展。纵向扩展 (Scaleup) 意味着扩展到更大、功能更强的服务器 - 例如,从 4 处理器服务器扩展到 16 或 32 处理器服务器。这是最常见的数据库扩展方式。如果数据库的当前硬件资源不够用,则可能需要采购具有更多处理器和更多内存的硬件。纵向扩展的优势是:不需要对数据库进行重大更改。通常,只需在较大的系统中安装数据库并以常用方式保持运行,这样就可以使用更多的数据库功能来处理更多负载。横向扩展 (Scaleout) 意味着扩展到多个服务器而非单个、更大的服务器。横向扩展通常具有可利用初始硬件成本这一优势(八台 4 处理器服务器通常比一台 32 处理器服务器更便宜),但是如果把授权和维护成本算在内,这项优势往往就被抵消掉了。在某些情况下,从可用性角度看,横向扩展解决方案提供的冗余度也是有用的。