我知道这听起来像一个编程问题,这意味着它应该在 stackoverflow 上,但我相信服务器管理员更担心这个问题,而且我并不是只寻找这个问题的编程答案。
如何创建可扩展的数据库?我正在http://www.slideshare.net/vishnu/livejournals-backend-a-history-of-scaling我看不懂 ATM,需要离开。但我想了解更多关于如何创建一个可扩展的数据库的信息。它提到并出现在我脑海中的一些事情是
- 读取和写入的句柄是否分开?
- 当一台服务器繁忙(IO 或 CPU 密集型)而我需要两台服务器进行写入时,会发生什么?
- 我是否需要创建多个数据库?用户有 clusterId 吗?
- 将用户从一个集群移动到另一个集群时会出现问题吗?
- 我可以对此进行编码,以便集群 A 上的 DB A 中的用户 ABC 和集群 B 上的 DB B 中的 DEF 具有相同的 PRIMARY KEY 吗?
- 当我将上述内容移至集群 C 时?这是否意味着我需要编写大量代码才能将它们移动到另一个集群/数据库?
- 为了使上述问题不再存在,我是否可以不使用 PRIMARY KEY,而是通过读取其他集群上的其他数据库来手动设置 ID?
ETC
答案1
我相信你可能正在寻找的是数据库分片。我对此一无所知,因为我们仅通过硬件更新就能远远领先于需求。