创建可伸缩性的数据库

2 rdbms database-design scalability load-balancing cluster-computing

如何为可伸缩性创建数据库?我在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?

等等

Ton*_*ews 6

要创建一个可以很好地扩展99.9%的用例的数据库,请不要担心任何这些问题.相反,设计一个正确规范化的模式; 使用主要,外键和其他约束来确保完整性; 索引表很好.研究DBMS供应商关于性能和可伸缩性主题的建议,例如分区,不同的表和索引结构等,并使用最适合您的情况(基准选项来证明它们可以提高可伸缩性).

当然,如果您在Google,Ebay或亚马逊工作,那么您可能会陷入0.1%的阵营,需要扔掉规则手册并完成您正在阅读的所有这些疯狂内容.但是我猜你没有,对吧?