mysql - 数据库分层如何工作?

标签 mysql database oracle database-design architecture

我在互联网上能找到的唯一好的引用是 this whitepaper ,它解释了什么是数据库分层,但没有解释它是如何工作的:

The concept behind database tiering is the seamless co-existence of multiple (legacy and new) database technologies to best solve a business problem.

但是,它是如何实现的呢?它是如何工作的?

与此相关的任何链接也会有所帮助。谢谢。

最佳答案

我认为该文档的想法是将“便宜”的数据库放在“昂贵”的数据库之前以降低成本。

例如。让我们假设您有一个“昂贵”的数据库……比如 Oracle、DB2 甚至 MSSQL(更现实地说,这可能更多是遗留数据库系统的一个问题,它不受太多支持,或者您需要专门的资源来维护)。购买和维护成本很高的数据库引擎(可以说,当您考虑所有因素时,这些并不昂贵。但让我们以它们为例)。

现在,如果您突然出名并且您的服务器开始重载,您会怎么做?您是否购买更大的服务器并将所有数据迁移到该新服务器?那可能会非常昂贵。

使用分层解决方案,您可以将多个“廉价”数据库放在“昂贵”数据库的前面,以承担工作的重任。因此,您的 Web 服务器(或应用程序服务器)与一组 MySQL 服务器通信,而不是直接与昂贵的服务器通信。然后这些 MySQL 服务器处理大部分调用。例如,他们可以完全自己处理所有只读调用,只需要将写调用传回主数据库服务器。这些 MySQL 服务器随后通过标准复制实践保持同步。

使用这样的方法,理论上您可以将昂贵的服务器扩展到数十个(如果不是数百个)“廉价”数据库服务器,并处理更高的负载。

关于mysql - 数据库分层如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3365091/

相关文章:

mysql - 添加外键错误

MySQL 将表连接到自身并比较结果

database - 如何在 Oracle 中生成排列?

database - 甲骨文数据库同步

php - 选择一个未显示的随机结果

MySQL 按优化排序

oracle - 如何让 OCI 库在带有 R Oracle 的红帽机器上工作?

java - oracle中如何自动调整ID值(主键)?

php - Laravel 5.1 如何将 ids 数组映射到另一个表中的相应值?

php - mysql 表名区分大小写