如何保存庞大的数据库表

时间:2011-07-05 18:46:57

标签: database facebook partitioning

想知道facebook等网站如何将其数据保存在MySQL数据库中。我最想知道的是:比方说,如果你有一个userID表(太大而无法保存在一台服务器中),你怎么能将数据分区并存入不同的服务器?即使所有userID都可能保存在一个服务器中,用户的友好列表肯定无法保存在一台服务器上。那么,如果您需要一个需要来自多个服务器的数据的查询,那么如何进行查询呢?据我所知,mysql集群或memcached等只会对负载平衡或加速查询有所帮助,但对于我提到的确切问题,我不知道它是如何工作的。

任何人都可以提供一些关于此的信息吗?链接或技术关键字也可能有所帮助。

1 个答案:

答案 0 :(得分:0)

它叫做分片。这是信息

http://en.wikipedia.org/wiki/Shard_%28database_architecture%29

其他解决方案也是不使用MySQL。有NoSQL解决方案,mongodb可能会为您进行分片。