dot Redis 8 来了——它是开源的

了解更多

数据库扩展

返回术语表

什么是数据库扩展?  

数据库扩展是指数据库根据系统负载获取或削减资源的能力,从而在资源分配与需求之间建立直接关联。扩展确保数据库服务器质量的一致性,同时尽可能高效地利用资源。因此,扩展过程通常是自动化的。扩展的自动化被称为弹性

了解9 项基本数据库功能

虽然许多数据库只具备这些关键功能中的一项或几项,但拥有全部九项功能对于成功应对当今面临的挑战至关重要。

数据库可扩展性提供以下优势

水平扩展与垂直扩展的区别

虽然可扩展性遵循按需增加或减少数据库系统资源的通用原则,但系统可以通过不同的方式进行扩展。根据数据库执行的任务,有些方式会更加高效。因此,第一个问题是系统应该进行垂直扩展还是水平扩展。

垂直扩展或向上扩展

垂直扩展包括向单个系统节点或计算机添加更多资源,例如内存或处理器。这种方式的扩展速度快且直接。然而,垂直扩展存在局限性且缺乏灵活性。例如,垂直扩展系统可能成为数据库的单点故障,从而损害可用性。此外,这些系统无法部署大于其可用资源的虚拟机;它们必须先扩展,然后再部署。

水平扩展或向外扩展

水平扩展是提高系统性能和容量的强大方法。通过水平扩展,您可以向基础设施添加更多节点或计算机,以应对不断增长的流量和需求。虽然部署和启动新的虚拟机可能需要稍长时间,但其好处非常值得。通过向系统添加更多资源,您可以确保您的应用程序保持快速、响应灵敏且对用户可用。

通过水平扩展,您可以根据需要灵活地增加容量,而无需在硬件上进行大量前期投资。这意味着您可以快速轻松地适应不断变化的业务需求,而无需担心浪费资源或过度配置。一旦您的新机器启动并运行,它们就会完全集成到您的系统中,为您的用户提供无缝且可靠的体验。

虽然新机器启动和运行可能需要一些等待时间,但水平扩展的好处远大于任何潜在的缺点。通过向系统添加更多资源,您可以确保您的应用程序始终可用、始终快速,并且始终准备好处理任何情况。因此,如果您正在寻求提高系统的性能和容量,请考虑将水平扩展作为一种强大的工具来实现目标。

想使用 Redis Cloud 创建数据库吗?

创建您的免费 Redis Cloud 帐户。点击“立即开始”后,您将收到一封包含用于激活帐户和完成注册流程的链接的电子邮件。

提升数据库性能和可扩展性

数据库扩展技术旨在通过利用数据库机制,根据数据库架构和任务来实现最佳性能。

复制

数据库复制包括创建数据库的副本。数据库副本作为原始数据库(也称为设计主库)的辅助实例运行。设计主库和副本构成一个副本集,其中所有实例同步以保持相同的数据。

为了节省资源,任何更改首先写入设计主数据库,然后写入副本。然而,读取操作是在实例之间分担的。因此,通过分担系统负载,复制提高了可访问性和性能。

复制还增加了系统的容错能力;通过向数据库添加更多连接点,确保即使其中一个发生故障,系统仍能继续工作。在这方面,可以设计一个副本,使其在设计主库不可用时接管其角色。

数据库复制有三种主要方法

分区

分区或分片将数据库分成更小的部分,以便于管理和访问。只需要一部分数据的查询需要扫描的数据更少,因此运行速度更快,而服务器可以在不同分区上并行运行任务。因此,分区通常用于大型数据库。

分区还为数据库提供了更大的灵活性;例如,可以根据使用模式将数据库划分为不同类型的数据存储。同样,最重要或最敏感的数据可以托管在质量最佳的存储设备中,或者托管在具有独立安全措施的更安全的分区中。此外,如果数据库的硬件已达到限制,您可以选择将数据库进行分割,并将其中一部分存储在新服务器中。

相关资源:Azure Cache for Redis 企业版层中的新数据库扩展和安全功能

分区还可以防止数据库出现单点故障。如果数据库实例发生问题,只会影响该数据库中的数据。

数据分区主要通过三种方式实现

水平分区(也称为范围分区)根据选定关键字段的值范围划分数据。每个分区都有一个独立的数据存储,但共享相同的模式。此方法适用于需要跨多个节点分布的大型表数据库。

垂直分区(也称为列分区)按列垂直划分数据。每个分区包含数据库列的一个子集,并且分区根据使用模式分布在节点之间。当某些列比其他列使用更频繁时,此方法很有用,可以实现更快的数据访问。

功能分区根据系统中每个有界上下文使用数据的方式划分数据。此方法与领域驱动设计和微服务架构更密切相关,在这些架构中,不同的服务拥有自己的数据库,且模式相互独立。

带复制的分区

数据库系统可以同时使用分区和复制。在这种情况下,数据库被划分为多个分区,并且每个分区都在多个服务器之间复制。这样做的好处是读写可扩展性以及在服务器故障时的高弹性。

另一方面,虽然结合复制和分区提供了更大的灵活性,但它也可能增加数据库的复杂性,并引入维护副本和分区的额外开销。

常见问题 (FAQ)

  • W数据库可扩展性有哪些常见挑战?
    • 数据库扩展系统的一些最常见挑战包括
    • 大规模操作:如果管理和优化不当,流量大的大型数据库容易出现性能下降和响应时间变长的问题。
    • 弹性扩展:扩展必须自动化,以便在用户数据需求变化时快速响应并最大限度地降低运营成本。弹性涉及使用允许轻松扩展的基于云的数据库或使用容器化技术部署和管理多个数据库实例。
    • 成本:实施扩展解决方案并保持其正常运行可能比一次性购买容量更昂贵。
  • 我如何知道我的数据库是否需要扩展?
    • 表明您的数据库需要扩展的迹象包括
    • 查询响应时间慢。
    • CPU 使用率高或磁盘 I/O 活动频繁。
    • 系统设计弹性低。
    • 数据库服务器崩溃或频繁超时。
  • 我可以将垂直和水平扩展方法结合使用吗?
    • 是的。将垂直和水平扩展结合使用称为混合扩展
  • 数据库扩展是否存在风险?
    • 扩展会增加数据库的复杂性,使其更难管理和维护。此外,扩展可能成本高昂。最后,扩展可能会在数据库架构中引入新的故障点,增加服务器停机或数据丢失的风险。
  • 如何为我的业务选择最佳的数据库扩展解决方案?
    • 为您的业务选择最佳的数据库扩展解决方案取决于仔细权衡利弊。首先,了解您的性能需求和预算,并将这些信息与其他选项进行比较,例如一次性购买容量或优化数据库并移除数据。