垂直扩展,就是升级机器,加强装备。换一台更贵更豪华的机器,CPU啦,内存啦,磁盘阵列啦,升之换之。以质取胜。(SQL)
水平扩展,就是添加机器。一台不够,就加两台。以数量弥补质量的不足,或曰,量变达成质变。(Nosql)
我们假设有3辆卡车,每辆车一次可以运25根木材,计算花费1小时的情况下可以运送到指定地点等待处理的木材数量。通过这些数字我们可以算出我们系统最大的负荷量:
3辆卡车 * 25根木材 * 1小时=75根木材/小时
如果我们选择垂直扩展模型,那么我们将怎么做来使我们每小时可以处理150根木材?
垂直扩展
使每辆卡车的运输量增加一倍(50棵树每小时),或者使每辆卡车的运输时间减半(每辆卡车30分钟)。
3辆卡车 * 50棵树 * 1小时 = 150棵树/每小时
或者
3辆卡车 * 25棵树 * 30分钟 = 150棵树/每小时
我们没有增加系统的成员数,但是我们通过增加系统成员的生产效率来获得期望的负荷量。
水平扩展
当我们需要将负荷从75棵树每小时增加到150棵树每小时,那么只需要增加3辆卡车
6辆卡车 * 25棵树 * 1小时 = 150棵树/每小时