数据库设计:适用于拥有1亿用户的网站

时间:2011-05-03 11:50:14

标签: database-design performance

我正在寻找数据库设计的建议,而不是在架构设计方面,但是如何将DB表分布或分布在不同的服务器上。

简单地说:我有10-15个表,例如包含注册用户的所有信息。

但是如果用户数量很大(1亿+),那么数据库模式是否应该划分为不同的服务器,其中db实例专用于存储不同表的数据

据我所知,应该对一个数据库实例应监控的数据大小有一个最佳限制。如果达到最佳限制该怎么办?

请告知。

的问候,
Mayank

修改:

好吧,我会重申我的问题并努力使事情清楚。 我心中想到的东西:

  1. 编写DBSchema以支持该应用。该应用程序将允许用户注册,状态更新等,如在脸书或其他
  2. 只使用一个数据库实例,可以支持理论上(实际上也可能是postgresql:http://www.postgresql.org/about/)。
  3. 随着用户的增加,只需增加服务器容量。 (硬盘和CPU都有)
  4. 但是,据我所知,更多的数据是更多时间查找。

    此外,中央数据库中的所有数据可能无法灵活地将其传播到用户密度的整个位置。

    可能不会在区域范围内放置不同的服务器。所以,分析了一些事情。

    关于分布式数据库或文件系统,我对SQL DBs感到不舒服。

    因此,我考虑在不同的数据库实例/服务器下逻辑分发要监视的表。

    我正在尝试第一次编写这样的应用程序(之前从未在DB上工作过:()。请评论我认为奇怪的是什么,或者我对DB事物的理解是零还是像这样的任何事情。

    我将非常感激。

    的问候,
    Mayank

2 个答案:

答案 0 :(得分:4)

我建议如果你甚至考虑这个大小的数据库,那么你需要做的第一件事就是聘请专家进行大型数据库设计和高性能。这是一个复杂的主题,无法在论坛上回答。它要求您拥有全职的专业知识。这是保证成功实施的最佳方式。

答案 1 :(得分:1)

对于庞大的数据库(读它是巨大的),你可能想要考虑分布式文件系统,如谷歌的BigTable

HBase是Apache Hadoop Project的一个实现,位于HDFS

Facebook也使用HDFS集群,事实上它是largest