数据可扩展性
数据可扩展性是指数据库通过添加和删除数据来处理不断变化的需求的能力。通过这种方式,数据库的增长速度与软件的增长速度相同。
通过扩展,数据库可以扩大或缩小系统资源的容量,以支持应用程序频繁变化的使用。
有两种方式可以对数据库进行扩展:
- 横向扩展(扩大规模)
- 垂直扩展(扩展)。
在这篇文章中,我们将探讨这两种扩展方法,并讨论每种方法的优点和缺点,以帮助你选择。
水平扩展
这种扩展方法增加了更多的数据库节点来处理增加的工作负荷。它减少了服务器上的负载,而不是扩大各个服务器。
当你需要更多的容量时,你可以向集群添加更多的服务器。这种扩展方法的另一个名称是扩展(Scaling out)。

横向扩展的优点:
- 它易于升级
- 实施简单,成本低
- 它提供灵活、可扩展的工具
- 它具有无限的扩展性,可以无限制地增加服务器实例
- 升级横向扩展的数据库很容易--只需在服务器上增加一个节点即可。
横向扩展的劣势:
- 代码中的任何错误都会变得更加复杂,难以调试和理解。
- 许可费很贵,因为你将有更多的节点需要许可
- 数据中心的成本将大大增加,因为需要更多的空间、冷却和电力。
什么时候使用横向扩展:
如果你要处理的用户超过一千人,最好使用这种扩展系统,因为当服务器收到多个用户请求时,一切都会很好地扩展。
它也不会因为有多个服务器而崩溃。
垂直扩展
垂直扩展方法通过增加同一逻辑服务器中的资源来增加单台机器的容量。这涉及到向现有的软件增加内存、存储和处理能力等资源,增强其性能。
这是扩展数据库的传统方法。这种方法的另一个名称是扩大规模。

垂直扩展的优势:
- 数据中心的空间、冷却和电源的成本将更小
- 它是一种具有成本效益的软件
- 它易于使用和实施--管理员可以很容易地管理和维护该软件。
- 这种方法的资源是灵活的
垂直扩展的缺点:
- 成本可能很低,但每次扩大规模时都需要支付许可证费用。
- 由于是高端服务器,硬件成本较高
- 你可以升级的数量是有限制的
- 你被限制在一个单一的数据库供应商,迁移很有挑战性,或者你可能需要重新开始。
什么时候使用垂直扩展:
如果你需要一个具有独特数据一致性的系统,那么垂直扩展的方法就适合你。
如果你不想担心平衡服务器的工作负荷,垂直扩展是最好的选择。
垂直扩展和水平扩展之间的区别
| 垂直式 | 横向 |
|---|---|
| 许可证费用较低 | 许可证费用更高 |
| 这种方法通过额外的独立服务器来增加服务器的功率 | 这种方法通过现有的服务器来增加服务器的功率 |
| 这些数据存在于一个单一的节点上,并通过一个多核进行扩展。 | 这是基于对包含单一部分数据的每个节点的分区。 |
哪种扩展方法最适合你的应用程序?
当选择如何扩展你的数据库时,你必须考虑当你扩大和缩小规模时的利害关系。
现在我们来看看要考虑的一些因素,以便你能选择哪种扩展系统最适合你的应用程序。
负载平衡
垂直扩展系统最适合平衡负载,因为你有一个单一的服务器(垂直扩展),不需要平衡你的负载。横向扩展需要你均匀地平衡工作负载。
故障点
横向扩展系统有一个以上的服务器,所以当一个服务器崩溃时,下一个服务器会接替它。这意味着不存在单点故障 ,这使得系统具有弹性。
但在垂直扩展系统中,只有一台服务器,所以一旦服务器崩溃,一切都会离线。
速度
就速度而言,垂直扩展系统更快,因为由于它在一台服务器上运行,垂直扩展系统有一个 进程间通信--也就是说,服务器在其内部进行通信,速度很快。
横向扩展系统在两个或多个服务器之间有网络调用。这也被称为远程程序调用(RPC)。 不过,RPC很慢。
数据一致性
在处理服务器时,你需要确保当终端用户发送请求时,存储在服务器中的数据是一致的。
垂直扩展系统是数据一致的,因为所有信息都在一个服务器上。但横向扩展系统是用多个服务器扩展的,所以数据一致性可能是一个巨大的问题。
硬件限制
横向扩展系统的扩展性很好,因为你扔给一个请求的服务器数量与数据库或服务器的用户数量是线性关系。另一方面,垂直扩展系统有一个限制,因为所有的东西都在一个服务器上运行。
当选择一个系统来扩展你的数据库时,一定要把本文的信息做成一个利弊清单。它将帮助你决定使用哪一种。
结论
云计算模型的可扩展性是指快速和即时增加或减少IT能力的能力。了解这两种类型的扩展工作是至关重要的,因为这在你的数据库或服务器管理中发挥着巨大的作用。
快速回顾一下...
- 服务器的作用是提高其处理增加的工作量的能力,称为垂直扩展。
- 一个系统的工作是增加新的节点来管理分布式工作负载,称为水平扩展。
- 横向扩展系统随着用户数量的增加而扩展良好。
- 垂直扩展系统由于具有进程间通信的能力,所以速度更快。
谢谢你的阅读!