创build一个数据库的可伸缩性

我知道这听起来像一个编程问题,这意味着它应该是在计算器上,但我相信服务器pipe理员担心这个更多,我不只是寻找这个问题的编程答案。

我如何创build一个数据库的可扩展性? 我在http://www.slideshare.net/vishnu/livejournals-backend-a-history-of-scaling中间,我不能读ATM,需要离开。 但是我想知道更多关于创build一个可以很好扩展的数据库。 它提到并发生在我脑海中的东西是

  • 单独的句柄读取和写入?
  • 当一台服务器忙(IO或CPU绑定),我需要两个服务器写入?
  • 我是否创build多个数据库? 在用户上有一个clusterId?
  • 将用户迁移到另一个群集时会出现问题吗?
  • 我可能代码这样,用户ABC在数据库A在群集A和数据库B在群集B具有相同的主键?
  • 当我把上面的集群C? 这是否意味着我需要编写很多代码将它们移动到另一个集群/数据库?
  • 为了使上述不是一个问题,我不会使用PRIMARY KEY并通过阅读其他群集上的其他数据库手工设置ID?

等等

我相信你可能正在寻找的是所谓的数据库分片。 我不知道任何事情,因为我们已经能够通过硬件更新保持需求。